在C#7.0我可以聲明如下deconstructors我的課:是否有可能在C#7.0中重載解構器?
public class Customer
{
public string FirstName { get; }
public string LastName { get; }
public string Email { get; }
public Customer(string firstName, string lastName)
{
FirstName = firstName;
LastName = lastName;
}
public void Deconstructor(out string firstName, out string lastName, out string company)
{
firstName = FirstName;
lastName = LastName;
company = "Nop-Templates";
}
public void Deconstructor(out string firstName, out string lastName)
{
firstName = FirstName;
lastName = LastName;
}
}
我想用我們的變量在desconstructor而不是直接返回一個元組的想法是這樣,你可以有解構的不同的重載。但是,我似乎無法將對象解構爲三個變量。我只能將其解構爲兩個變量。
例如,這並不編譯:
(string firstName, string lastName, string company) = customer;
而且我得到這個錯誤:「不能解構‘2’的元素融入到‘3’變量的元組」
但這並工作:
(string firstName, string lastName) = customer;
我缺少什麼?
可以重載的'Deconstruct'方法與不同數量的參數和不同的類型。 –
當你說「這不能編譯...但是這樣做」,有什麼區別?這兩段代碼看起來和我完全一樣。 –
如果這是真正的代碼,這將有所幫助 - 除非你的問題只是你的'Deconstruct'方法使用了錯誤的名稱? –