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

  • Phandroid

    Phandroid

    26 Ocak 2009
  • skiesofblack.net

    skiesofblack

    14 HAZİRAN 2009
  • Chaîne de TheMoustic

    Chaîne de T

    5 Kasım 2006