gpt4 book ai didi

c# - 使用非实例化对象的扩展方法,即 String.F()

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

在之前的组织中,我们实现了一个扩展方法,该方法创建了 String.Format 的简写形式。该方法称为“String.F”。但是我似乎无法让它工作。一位前同事给了我以下代码,我在下面列出了这些代码以及我自己的测试方法。在函数“Test()”中,“String.F”抛出错误并且未在智能中显示。我会问这是否不可能,但我已经使用对此方法的调用编写了代码。这仅在使用实例化字符串时才有可能吗?谢谢。

public static class MyExtensions {
public static string F(this string target, params object[] args) {
return "hello";
}
}

class TestExtensions {
public string Test() {
return String.F("test:{0}", "test");
}
}

最佳答案

您不能执行扩展方法并在静态上下文中使用它。扩展方法只能用作实例方法。

你可以做到

public static string F(this string target, params object[] args) {
return String.Format(target, args);
}

然后像这样使用它

"test:{0}".F("test");

关于c# - 使用非实例化对象的扩展方法,即 String.F(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7431210/

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