编写模块化程序
Writing a modular program
我想制作我的程序 "modular",我想知道我是否采取了正确的方法。
我的意思是我想在它自己的 c# 文件中包含一些可重复使用的 "processing" 内容。这样,我可以简单地在项目之间复制文件,以便能够重用我的代码。由于这可能没有意义,让我用一个例子来解释。
Program.cs
static class Program
{
static void Main()
{
int[] x = {0, 0, 0, 0, 0};
BClass b = new BClass(x);
Console.Write("[ ");
foreach (int i in x)
{
Console.Write(i + " ");
}
Console.Write("]\n");
Console.Read();
}
}
BClass.cs
class BClass
{
int[] x;
public BClass(int[] x)
{
for (int i = 1; i < 5; i++)
{
x[i] = i;
}
}
}
现在,这工作正常,我得到了我期望的输出,但感觉 错误 ,我猜?除了我的直觉之外,我还收到警告(如我所料),因为 BClass
对象未被使用。最后,我的问题是 使这样的程序模块化的最佳方法是什么? 使用 class 感觉不对,因为我最终得到了一个永远不会引用的对象使用。也许我用错了class?
您似乎想要一些可以从应用程序中的任何位置 运行 的逻辑。为此,您将使用静态方法。
静态方法不需要 运行 的实例。
因为所有 BClass
都包含一个静态方法,所以您最好也将 BClass
设为静态。静态 class 是无法实例化的 class。它只存在于包含静态方法。
public static class BClass
{
public static void DoStuff(int[] x)
{
for (int i = 1; i < 5; i++)
{
x[i] = i;
}
}
}
当你想使用这个逻辑时,你只需这样做
BClass.DoStuff(myArray);
我想制作我的程序 "modular",我想知道我是否采取了正确的方法。
我的意思是我想在它自己的 c# 文件中包含一些可重复使用的 "processing" 内容。这样,我可以简单地在项目之间复制文件,以便能够重用我的代码。由于这可能没有意义,让我用一个例子来解释。
Program.cs
static class Program
{
static void Main()
{
int[] x = {0, 0, 0, 0, 0};
BClass b = new BClass(x);
Console.Write("[ ");
foreach (int i in x)
{
Console.Write(i + " ");
}
Console.Write("]\n");
Console.Read();
}
}
BClass.cs
class BClass
{
int[] x;
public BClass(int[] x)
{
for (int i = 1; i < 5; i++)
{
x[i] = i;
}
}
}
现在,这工作正常,我得到了我期望的输出,但感觉 错误 ,我猜?除了我的直觉之外,我还收到警告(如我所料),因为 BClass
对象未被使用。最后,我的问题是 使这样的程序模块化的最佳方法是什么? 使用 class 感觉不对,因为我最终得到了一个永远不会引用的对象使用。也许我用错了class?
您似乎想要一些可以从应用程序中的任何位置 运行 的逻辑。为此,您将使用静态方法。
静态方法不需要 运行 的实例。
因为所有 BClass
都包含一个静态方法,所以您最好也将 BClass
设为静态。静态 class 是无法实例化的 class。它只存在于包含静态方法。
public static class BClass
{
public static void DoStuff(int[] x)
{
for (int i = 1; i < 5; i++)
{
x[i] = i;
}
}
}
当你想使用这个逻辑时,你只需这样做
BClass.DoStuff(myArray);