在C#7中,我们可以实现一个Deconstruct方法,该方法在将对象分配给具有匹配类型的元组时将被调用.
我想知道为什么微软决定将其作为一种"魔术方法"来实现.有一个特定命名的方法不是从任何地方继承的,如果你正确命名并放入正确的参数,那么你将能够将这个对象分配给相应的元组.
我想,设计团队会为此创建一个界面.
就像是:
public interface IDecontructible<T1>
{
void Deconstruct(out T1 a);
}
public interface IDecontructible<T1, T2>
{
void Deconstruct(out T1 a, out T2 b);
}
public interface IDecontructible<T1, ... ,Tn>
{
void Deconstruct(out T1 a, ... ,out Tn n);
}
Run Code Online (Sandbox Code Playgroud)
当然,必须有更多具有不同数量参数的接口.
这个设计选择有没有明显的原因,我错过了?