一个类是否可能总是返回一个不同的对象?



假设我有一个类A,类B作为属性,我如何在分配A的实例时返回A.B。例如:

public class A
{
public B b {get; set;}
}
object x = A //Here I want to return A.b without casting it.

本质上是重载'='操作符或为类本身使用get语句。我在这里能做什么?

似乎是隐式操作符重载的工作,但我很少使用它,因为它很容易导致混淆:

public static class Program
{
static void Main(string[] args)
{
var a = new A();
B b = a;
Console.WriteLine($"Name of b in a: {a.SomeB.Name}");
Console.WriteLine($"Name of b: {b.Name}");
}
}
public class A
{
public A()
{
SomeB = new B { Name = Guid.NewGuid().ToString() };
}
public B SomeB { get; set; }
public static implicit operator B(A a) => a.SomeB;
}
public class B
{
public string Name { get; set; }
}

注意你的例子:

object x = A; // Here I want to return A.b without casting it.

永远不会工作,因为所需的类型必须在某处声明,而object并不是真正的最佳候选。

相关内容

  • 没有找到相关文章

最新更新