私は私のクラスのために、次のdeconstructorsを宣言することができます。C#7.0でデコンストラクタをオーバーロードすることは可能ですか? 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で私たちの変数を使用しての代わりに、直接タプルを返すという考え方があるとし。しかし、私はオブジェクトを3つの変数に分解することはできないようです。私は2つの変数に分解することしかできません。
(string firstName, string lastName, string company) = customer;
そして、私はこのエラーを取得:
例えば、これはコンパイルされません " '3' 変数に '2' の要素のタプルを分解できない"
はを
しかし、これはないと動作します:
(string firstName, string lastName) = customer;
私は何をしないのですか?
異なる構造のパラメータと異なる種類のメソッドで、「Deconstruct」メソッドをオーバーロードすることができます。 –
「これはコンパイルされませんが、これはします」と言うとき、違いは何ですか? 2つのコードは私と100%同じです。 –
これは本当のコードであれば助けになります。問題があなたの 'Deconstruct'メソッドに間違った名前を使用したということだけでないかぎりですか? –