是否可以在 C# 中使用全局方法
Is it possible to have Global Methods in C#
所以我有一个静态 class 让我们说它叫做 Worker,让我们说
我在其中有一个名为 Wait(float f) 的方法及其全部 public 所以我可以像这样在任何地方访问它:
Worker.Wait(1000);
现在我想知道有什么方法可以定义某种独特的
特殊方法,所以我可以像这样简短地做:
Wait(1000);
(没有它在 class 我会用它)?
不,您不能在 C# 中使用不属于 class 的方法。
不,你不能,方法属于 class,如果你执行 Wait(1) 是因为你在定义该方法的 class 中(或者是父 class)
编辑...
正如在 C# 5 中所说的那样,这可以在 C# 6 中完成,现在可以静态导入一些 classes...
看看 Scott Chamberlain 的 和 link 到 MSDN
With C# 6 this can be done。在文件顶部,您需要添加 using static Your.Type.Name.Here;
.
namespace MyNamespace
{
public static class Worker
{
public static void Wait(int msec)
{
....
}
}
}
//In another file
using static MyNamespace.Worker;
public class Foo
{
public void Bar()
{
Wait(500); //Is the same as calling "MyNamespace.Worker.Wait(500);" here
}
}
所以我有一个静态 class 让我们说它叫做 Worker,让我们说 我在其中有一个名为 Wait(float f) 的方法及其全部 public 所以我可以像这样在任何地方访问它:
Worker.Wait(1000);
现在我想知道有什么方法可以定义某种独特的 特殊方法,所以我可以像这样简短地做:
Wait(1000);
(没有它在 class 我会用它)?
不,您不能在 C# 中使用不属于 class 的方法。
不,你不能,方法属于 class,如果你执行 Wait(1) 是因为你在定义该方法的 class 中(或者是父 class)
编辑...
正如在 C# 5 中所说的那样,这可以在 C# 6 中完成,现在可以静态导入一些 classes...
看看 Scott Chamberlain 的
With C# 6 this can be done。在文件顶部,您需要添加 using static Your.Type.Name.Here;
.
namespace MyNamespace
{
public static class Worker
{
public static void Wait(int msec)
{
....
}
}
}
//In another file
using static MyNamespace.Worker;
public class Foo
{
public void Bar()
{
Wait(500); //Is the same as calling "MyNamespace.Worker.Wait(500);" here
}
}