不了解课程和用法
我有一个VS2010项目,这个项目有很多类(项目中的子项目) 我正在尝试在类中使用一个方法,就像在本地winforms项目中一样 IE
using System.Diagnostics;
namespace DataBaseAccess
{
public class Class1
{
string[] lines = System.IO.File.ReadAllLines("names.txt");
public string startgenerationofnames()
{
foreach (string value in lines)
{
Debug.WriteLine(lines);
//call next class with the current value
}
}
}
}
我想从winforms中使用这个类,我创建了这个类。
DataBaseAccess.Class1 makenames = new DataBaseAccess.Class1();
如果没有课,我会像平常一样使用它 IE
DataBaseAccess.Class1.startgenerationofnames();
我不期望返回值,也不期望从类中获取任何内容,除了运行Debug.WriteLine(行)之外; 我显然没有理解这个基本任务,并且已经搜索了好几天了。 谢谢你的帮助
答案 0 :(得分:1)
您可以将方法和类转换为静态,以便在不需要类的实例的情况下调用方法。
using System.Diagnostics;
namespace DataBaseAccess
{
public static class Class1
{
private static string[] lines = System.IO.File.ReadAllLines("names.txt");
public static void startgenerationofnames()
{
foreach (string value in lines)
{
Debug.WriteLine(lines);
//call next class with the current value
}
}
}
}
现在你可以像这样调用它:
DataBaseAccess.Class1.startgenerationofnames();
答案 1 :(得分:0)
将您的类创建为静态类和静态方法。然后,您可以在不实例化类的情况下调用该方法。
答案 2 :(得分:0)
您可以定义public string startgenerationofnames()
以便在不实例化Class1的情况下使用它,但在这种情况下,这会失败,因为您使用的是(内部startgenerationofnames
)非静态变量。
你可以使用:
public class Class1
{
static string[] lines = System.IO.File.ReadAllLines("names.txt");
public static string startgenerationofnames()
{
foreach (string value in lines)
{
Debug.WriteLine(line); // not lines
//call next class with the current value
}
return ""; // or what you need
}
}
答案 3 :(得分:0)
有两件事...... 1你的startgenerationofnames需要返回一个字符串......或者你可以将它改成一个void返回类型。
2将读取所有行的加载移动到函数本身...你不想做任何类似的事情作为对象构造的一部分...因为它会给你一个不太明显的错误有什么不对。
试试这个......
public static class Class1
{
public static void startgenerationofnames()
{
string[] lines = System.IO.File.ReadAllLines("names.txt");
foreach (string value in lines)
{
Debug.WriteLine(lines);
//call next class with the current value
}
}
}
答案 4 :(得分:0)
您不需要使类静态,只需要方法。但是,您目前无法执行此操作,因为您的方法使用类的实例成员:
string[] lines ...
方法的标准静态定义包括static
关键字:
public static string startgenerationofnames()
我认为你不想返回(?),你需要将这些行移到方法中(或者让它们在类中保持静态):
public static void StartGenerationOfNames()
{
string[] lines = System.IO.File.ReadAllLines("names.txt");
foreach (string line in lines)
{
Debug.WriteLine(line);
}
}
如果您根本不希望实例化该类,则可以使该类本身为静态:
public static class Class1
这会强制类中的所有成员都是静态的,并阻止人们通过以下方式实例化它:
Class1 c = new Class1();
类的用法与静态方法一样:
Class1.StartGenerationOfNames();