Sei*_*ist 0 c# methods reference class shortcut
是否有可能在没有引用其类的情况下调用方法?
例如,你有一个帮助类:
class HelperTools
{
public static void DoWork()
{ /*...*/ }
}
Run Code Online (Sandbox Code Playgroud)
然后你需要调用它:
class MainClass
{
public static void Main()
{
HelperTools.DoWork();
}
}
Run Code Online (Sandbox Code Playgroud)
是否可以在DoWork();没有参考的情况下打电话?像这样:
public static void Main()
{
DoWork();
}
Run Code Online (Sandbox Code Playgroud)
只是为了简单起见.
不完全,但这里有5种模式可以让你接近:
namespace My.Namespace
{
using H = MyHelperClass;
public class MyHelperClass
{
public static void HelperFunc1()
{
Console.WriteLine("Here's your help!");
}
}
public class MyHelperClass2
{
public static void HelperFunc4()
{
Console.WriteLine("Here's your help!");
}
}
public interface IHelper{ }
public static class HelperExtensions
{
public static void HelperFunc3(this IHelper self)
{
Console.WriteLine("Here's your help!");
}
}
public class MyClass : MyHelperClass2, IHelper
{
private static readonly Action HelperFunc2 = MyHelperClass.HelperFunc1;
private static void HelperFunc5()
{
Console.WriteLine("Here's your help!");
}
public void MyFunction()
{
//Method 1 use an alias to make your helper class name shorter
H.HelperFunc1();
//Method 2 use a class property
HelperFunc2();
//Method 3 extend an interface that has extension methods.
//Note: you'll have to use the this keyword when calling extension
this.HelperFunc3();
//Method 4 you have access to methods on classes that you extend.
HelperFunc4();
//Method 5 put the helper method in your class
HelperFunc5();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
732 次 |
| 最近记录: |