Diğer geçersiz kılma yapıcısını kullanan kurucuya karar vermek C# 'da görülebilir mi? Aşağıdaki kod derleme yapmıyor! Hangi çağrının kullanıldığını bilmiyorum.Bir kurucu, hangi diğer kurucunun çağırmak için geçersiz kıldığını belirleyen bir mantık içerebilir mi?
class IntRange {
public IntRange(int min, int max) {
// write code here
}
public static IntRange Construct(int val, bool isMax) {
if (isMax) {
return new IntRange(0, val);
} else {
return new IntRange(val, int.MaxValue);
}
}
}
şöyle
public IntRange(int val, bool isMax)
: isMax ? this() : this()
{
if (isMax)
{
IntRange(0, val);
}
else
{
IntRange(val, int.MaxValue);
}
}
Hayır, ortak mantığı özel yöntemlere ayırın ve 'isMax 'değerine bağlı olarak bunları yapıcı içinde arayın. – vcsjones
Bu kararı, _any_ yapıcısını çağırmadan önce yapmış olmanız daha iyi olurdu. – DonBoitnott
C# 'da değil. IL'de yasal olarak yapılabileceğini düşünüyorum. –