在类之间共享代码
本文关键字:代码 共享 之间 | 更新日期: 2023-09-27 18:34:47
假设我有一个简单的函数,如下所示:
public static string randomthing(string var1)
{
string var2 = "hello world";
return var2;
}
我希望能够从不同的班级调用它。我该怎么做?
我试图创建一个空白文件并将功能粘贴在那里,但当然它不能那样工作。
如果要
共享代码,则需要创建可供其他类使用的第三个类。
这可以作为扩展方法、静态类或常规类(意味着您需要类的实例(来完成。
静态类:
public static MyClass
{
public static string randomthing(string var1) {
string var2 = "hello world";
return var2;
}
}
// Call it: MyClass.randomthing("a string");
扩展方法:
public MyClass
{
public static string randomthing(this string var1) {
string var2 = "hello world";
return var2;
}
}
// Call it: "a string".randomthing();
普通班:
public static MyClass
{
public static string randomthing(string var1) {
string var2 = "hello world";
return var2;
}
}
// Call it: var myClass = new myClass();
// myClass.randomthing("a string");
方法只能是类的一部分。 因此,在类(或结构(中声明它,当它只是静态方法的集合时,它可以是静态的:
class RandomThings
{
public static string randomthing(string var1) {
string var2 = "hello world";
return var2;
}
}
现在你可以通过ClassName.MethodName
调用此方法:
String randomString = RandomThings.randomthing("hello world");
方法(C# 编程指南(
您可以将类设置为静态并从另一个类调用它,而无需实例化类本身。
public static class Utility {
public static string randomthing(string var1) {
string var2 = "hello world";
return var2;
}
}
public class UsingTheCodeHere
{
public string SayingHelloWorld()
{
return Utility.randomthing();
}
}
您还可以使用继承实现类似的东西。
public class Person
{
public string SayHello()
{
return "Hello";
}
}
public class LoudMouth : Person
{
public override string SayHello()
{
return base.SayHello() + "!!!!";
}
}
public class SadPerson : Person
{
public override string SayHello()
{
return base.SayHello() + " I am sad";
}
}
由于该函数是静态的,只需使用包含的类名调用它:
public class Foo
{
public static string randomthing(string var1)
{
string var2 = "hello world";
return var2;
}
}
public class OtherClass
{
public OtherClass()
{
// In constructor
string here1 = Foo.randomthing("x");
}
public void OrInSomeFunction()
{
string here2 = Foo.randomthing("x");
}
}