sorun nedeniyle döküm ve açık operatörlere olmasıdır.
ilk gerçek nesne türü sbyte
olup byte
olması nedeniyle başarısız olursa bir [doğrudan] döküm olup. İkincisi sadece, maalesef hala yukarıda başına bir [direkt] döküm gibi görünüyor sözdizimi ile açık operatör ("Müstehcen Dönüşüm") kullanmak için olur bir dönüşüm gerçekleştirecektir.
var obj = (object)(sbyte)0;
var i1 = (int)(sbyte)obj; // okay: object (cast)-> sbyte (conversion)-> int
var i2 = (int)obj; // fail: sbyte (cast)-> int (but sbyte is not int!)
Ya bir object
alır ve bazı sihirli bir int dönüştürmek does bir (sbyte)objectExpression
gerçek nesne türü için geçerli olan döküm ya Convert.ToInt32(objectExpression)
kullanın: Burada başarısız sans-veritabanının bir örnektir . (Convert.ToByte
kullanmak, taşma üzerinde bir özel durum oluşturabilir.)
Mutlu kodlama!
Daha fazla kod verebilir misiniz? – craig1231
Okuyucu ["MyField"] + 0; '? 'I denediniz mi? –
@Hans Derlenmeyecek: ifade, '+' işleçle eşleşen 'object + int' yazılır. –