SORU
11 Temmuz 2012, ÇARŞAMBA


Neden kısa, ama int değişken değil ben 1 olarak geçebilir miyim?

Neden ilk ve ikinci iş ama son yazdı mı? Hepsi 3 izin yapabileceğim bir yol var ve eğer 1, (int)geçtim 1 veya olsaydı algılamak? Ve gerçekten neden izin verdi ama son nedir? İkinci ama son gerçekten aklımı alıyor izin verilmesi.

Demo to show compile error

using System;
class Program
{
    public static void Write(short v) { }
    static void Main(string[] args)
    {
        Write(1);//ok
        Write((int)1);//ok
        int i=1;
        Write(i);//error!?
    }
}

CEVAP
11 Temmuz 2012, ÇARŞAMBA


İlk iki sabit ifade, son defa değil.

# Şartname C int örtülü bir dönüştürme diğer ifadeler için sabitler için değil, kısa sağlar. Bu sabitler için derleyici değeri hedef türü sığar, ama normal ifadeler için değil emin olabilirsiniz bu yana makul bir kural.

Bu kural, örtülü dönüşüm kayıpsız olması gereken kılavuz hattı ile.

Örtülü sabit ifade 6.1.8 dönüşüm

Örtülü ifade sürekli bir dönüşüm aşağıdaki dönüşümleri izin verir:

  • Birconstant-expression(§7.18) tipi int dönüştürülebilir yazın sbyte, byte, short, ushort, uint, veya ulong, sağlanan değerconstant-expressionhedef türü arasındadır.
  • Birconstant-expressiontip long tip ulong deger verilen dönüştürülebilirconstant-expressionolumsuz değildir.

(C alıntı# Dil Belirtimi Sürüm 3.0)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • FrankJavCee

    FrankJavCee

    29 Kasım 2008
  • Paul Schroder

    Paul Schrode

    30 Kasım 2007