gpt4 book ai didi

c# - 流畅的界面,需要像 C# 中的全局方法

转载 作者:太空宇宙 更新时间:2023-11-03 22:08:32 24 4
gpt4 key购买 nike

我目前正在尝试为 ServiceLocator 构建 Fluent Interface。确保每个开发者都可以轻松设置一对多的映射

我想要这样的东西

ServiceLocator.Instance.For<IFoo>(Use<Foo>(), Use<FooBar>());

Singleton 工作正常...For 方法的方法签名如下所示

public void For<TInterface>(params type[] services)
{
// ...
}

所以我一直在寻找类似全局方法的东西

C# 有一些全局方法,所有方法都是在 System.Object 上定义的。但是当我在 System.Object 上创建一个新的泛型 ExtensionMethod 时,该方法将不可见。

public static class MyExtensions
{
public static void Use<T>(this Object instance)
{
// ..
}
}

MethodChaining 是替代方案,但这种方法看起来很性感 :D

有人有想法吗?

最佳答案

嗯,实际上当我为 Object 创建一个扩展方法时,它是可见的。如,

public static class Extensions
{
public static void doStuff<T>(this T myObject)
{
}
}

class Program
{
static void Main(string[] args)
{
int a = 5;
a.doStuff();

string b = "aaa";
b.doStuff();

List<int> c = new List<int>() { 1, 2, 3, 10 };
c.doStuff();

Extensions.doStuff(c);
}
}

我是不是误解了你的问题?

关于c# - 流畅的界面,需要像 C# 中的全局方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7540923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com