假设我有一个简单的功能像这样:
public static string randomthing(string var1)
{
string var2 = "hello world";
return var2;
}
我想从不同的班级里叫它。我该怎么做呢?
我试图创建空白文件,只是把函数粘贴到那里,但当然不起作用。
假设我有一个简单的功能像这样:
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");
方法只能是类的一部分。 所以在类( 或 < a href=" http:// msdn. microsoft. com/ en- us/library/ah19swz4%28v=vs. 100%29. aspx" rel = "nofollow" >struct a > ) 中声明它, 当它只是静态方法的集合时, 它可以是静态的 :
class RandomThings
{
public static string randomthing(string var1) {
string var2 = "hello world";
return var2;
}
}
现在您可以通过 ClassName.MethodName
调用此方法:
String randomString = RandomThings.randomthing("hello world");
你可以让班级静态, 并把它从另一个班级调来, 而不必对班级本身进行即时处理 。
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";
}
}
由于函数为 < a href=>", http://msdn.microsoft.com/ en- us/library/79b3xss3%28v=vs. 80%29.aspx" rel="nofollow">static , 请使用封闭的类名调用 :
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");
}
}
What is the use of default keyword in C#? Is it introduced in C# 3.0 ?
I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...
I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...
I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...
I have two EF entities. One has a property called HouseNumber. The other has two properties, one called StartHouseNumber and one called EndHouseNumber. I want to create a many to many association ...
How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...
Since I cannot order my dictionary, what is the best way of going about taking key value pairs and also maintaing an index?
Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...