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

  • BiGSH0TROB

    BiGSH0TROB

    7 NİSAN 2011
  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • TheGamer2323

    TheGamer2323

    25 Ocak 2009