问题描述
现在我有两个类 allmethods.cs
和 caller.cs
.
Now I have two classes allmethods.cs
and caller.cs
.
我在 allmethods.cs
类中有一些方法.我想在 caller.cs
中编写代码,以便调用 allmethods
类中的某个方法.
I have some methods in class allmethods.cs
. I want to write code in caller.cs
in order to call a certain method in the allmethods
class.
代码示例:
public class allmethods
public static void Method1()
{
// Method1
}
public static void Method2()
{
// Method2
}
class caller
{
public static void Main(string[] args)
{
// I want to write a code here to call Method2 for example from allmethods Class
}
}
我怎样才能做到这一点?
How can I achieve that?
推荐答案
因为 Method2
是静态的,你所要做的就是这样调用:
Because the Method2
is static, all you have to do is call like this:
public class AllMethods
{
public static void Method2()
{
// code here
}
}
class Caller
{
public static void Main(string[] args)
{
AllMethods.Method2();
}
}
如果它们在不同的命名空间中,您还需要在 using
语句中将 AllMethods
的命名空间添加到 caller.cs.
If they are in different namespaces you will also need to add the namespace of AllMethods
to caller.cs in a using
statement.
如果你想调用一个实例方法(非静态),你需要一个类的实例来调用该方法.例如:
If you wanted to call an instance method (non-static), you'd need an instance of the class to call the method on. For example:
public class MyClass
{
public void InstanceMethod()
{
// ...
}
}
public static void Main(string[] args)
{
var instance = new MyClass();
instance.InstanceMethod();
}
更新
从 C# 6 开始,您现在还可以通过 using static
指令更优雅地调用静态方法来实现这一点,例如:
As of C# 6, you can now also achieve this with using static
directive to call static methods somewhat more gracefully, for example:
// AllMethods.cs
namespace Some.Namespace
{
public class AllMethods
{
public static void Method2()
{
// code here
}
}
}
// Caller.cs
using static Some.Namespace.AllMethods;
namespace Other.Namespace
{
class Caller
{
public static void Main(string[] args)
{
Method2(); // No need to mention AllMethods here
}
}
}
进一步阅读
这篇关于如何让方法在类中调用另一个方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!