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

  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • multimediaGEEKS LLC

    multimediaGE

    3 Mayıs 2010