C# 绑定两个不同类但具有相似属性的对象
在C#中是否可以绑定两个不同类但具有相似属性的对象 例如:C# 绑定两个不同类但具有相似属性的对象,c#,C#,在C#中是否可以绑定两个不同类但具有相似属性的对象 例如: class Program { static void Main(string[] args) { test t = new test(); test2 t2 = new test2(); } } public class test { public int Number { get; set; } } public class test2 { public
class Program
{
static void Main(string[] args)
{
test t = new test();
test2 t2 = new test2();
}
}
public class test
{
public int Number { get; set; }
}
public class test2
{
public int Number { get; set; }
}
因此,如果不添加额外的代码,是否可以说
t=t2
somewhow?,不,您不能这样做
即使它们“相似”,编译器也会将它们视为完全不同的类型,不能相互分配
现在,您可以在一个(或两个)上包含一个操作符,以便允许在两个操作符之间进行隐式转换
public class test
{
public static implicit operator test(test2 t)
{
return new test(tt.Number);
}
public static implicit operator test2(test t)
{
return new test2(t.Number);
}
public int Number { get; set; }
}
但是,这已经接近于支持该语法了。如果您不关心接口的实现是什么,您可以让这两个类实现一个接口 例如:
class Program
{
static void Main(string[] args)
{
INumber t = new test();
INumber t2 = new test2();
}
}
public class test : INumber
{
public int Number { get; set; }
}
public class test2 : INumber
{
public int Number { get; set; }
}
public interface INumber
{
int Number { get; set; }
}
接口是一种契约,它提供了实现类必须定义的属性和方法的定义。你可以阅读更多关于
当您的类实现共享接口时,您可以隐式地将一种类型转换为另一种类型,如上面的示例中所示。否,无需某种类型的脚手架代码或外部库(如)。也许你能准确地描述你想要达到的目标?