C# Şu Operatör i böyle bir şey yapmaya çalışıyorum aşırı öğrenme çok taze bitti:C# Operatör Aşırı yükleme, dizgi yeniden yazma?
string val = 500; (I can't implicitly)
ve ben mesela Number n1 = someintvalue
almak için yönetir ardından
Number n1 = val;
: böyle
Number n1 = 500;
:
public struct Number
{
public int Value { get; set; }
public Number(int Val)
{
Value = Val;
}
public static implicit operator Number(int num)
{
return new Number(num);
}
}
Bununla birlikte, Number n1 = val;
string val = 500;
ve aşağıdaki alışkanlık iş: Ben sadece ilk satırı olamaz derleme beri can not (zaman val bir dizedir)
public static implicit operator string(int A)
{
return new string(A);
}
nedeniyle 1 hata anlayamıyorum
1) Kullanıcı tanımlı dönüşüm için veya i op yüklenmesinin fikir edinmek arada kapsayan tip
dönüştürmek gerekir
spesifik durum underthis: return new Number(num);
Sadece ctor
'u initle hala daha temel bir anlayışa ihtiyacım var thx ahead!
Yan nota: "struct" ile "class" arasındaki farkı anlamıyorsanız ve "struct" öğesine açıkça ihtiyaç duymadıkça "struct" özelliğini kullanmayın. Değişebilen yapılar genellikle gereksiz olan her türlü soruna neden olabilir. –
Plus, 'string val = 500;' zayıf bir uygulamadır. Eğer bir string isterseniz string_: 'string val =" 500 "; C# güçlü yazılmış bir dildir ve bu şekilde ele alınmalıdır - çok tipli dönüşüm eklemeleri eklendiğinde bu tip güvenliği aşındırır. –