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.
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ınsbyte
,byte
,short
,ushort
,uint
, veyaulong
, sağlanan değerconstant-expressionhedef türü arasındadır.- Birconstant-expressiontip
long
tipulong
deger verilen dönüştürülebilirconstant-expressionolumsuz değildir.
(C alıntı# Dil Belirtimi Sürüm 3.0)
Bunu Paylaş:
Java'da değişken bağımsız değişken bir...
Nasıl sözlük olarak değişken anahtar d...
Neden' ◎ܫ◎ ve fonksiyonu t JavaSc...
Neden Java statik olarak bir sınıf bil...
Liste<Köpek> Listenin alt<Hay...