【发布时间】:2019-05-21 11:42:02
【问题描述】:
我想“隐式”使用包含的对象作为别名,就像它是“this”关系一样。 C# 是否支持这样的东西,或者哪种设计模式可能最接近表达的意图?我正在考虑的替代方法是定义一个委托并在 MyHasA 类中实现它。
伪例子A
public class MyClass
{
public MyHasA hasA;
public void MyMethod()
{
implicit(hasA)->
{
Print("Hello World"); // vs hasA.Print("Hello World")
}
}
}
伪例子B
public class MyClass
{
public MyHasA hasA;
using implicit hasA;
public void MyMethod()
{
Print("Hello World"); // vs hasA.Print("Hello World")
}
}
}
【问题讨论】:
-
我不知道有任何此类机制。但是你为什么要这样做呢?您希望解决什么问题?
-
这有点像XY Problem。您能否解释一下您实际上想要实现的目标(而不是您尝试实现目标的方式),可能会有不同的方式。
-
实际上,这在我看来是一种反模式。那会让代码真的很混乱。
-
或者你的意思是这样的:stackoverflow.com/q/7692826/982149? (静态导入)
-
@CurtisWhite C# 有内部类,它们确实可以访问外部类的功能。我怀疑那是你想要的。你还没有解释你想做什么,只是你认为它可以怎么做。为什么不使用通用的方式来实现例如带有接口和/或泛型类型的状态?
标签: c# design-patterns