不能访问我刚刚创建的类

本文关键字:创建 不能 访问 | 更新日期: 2023-09-27 17:53:37

希望这是一个简单的问题。我正在用c#构建一个简单的控制台应用程序。我有一个类:

using System;
using Filter;
public class Params
{
    public string key;
    public bool distinct;
    public List<string> fields;
    public string filter;
    public int limit;
    public int skip;
    public bool total;
    public List<Tuple<string, GroupType>> group;
    public List<Tuple<string, OrderType>> order;
    public Params()
    {
        key = "";
        distinct = false;
        fields = new List<string>();
        filter = "";
        group = new List<Tuple<string, GroupType>>();
        limit = 0;
        order = new List<Tuple<string, OrderType>>();
        skip = 0;
        total = false;
    }
    public void AddGroup(string field, GroupType type)
    {
        group.Add(new Tuple<string, GroupType>(field, type));
    }
    public void AddOrder(string field, OrderType type)
    {
        order.Add(new Tuple<string, OrderType>(field, type));
    }
}

我的程序。cs类是:

namespace csharpExample
{
    class Program
    {
        public static void Main(string[] args)
        {
            Params p = new Params();
            Console.WriteLine("Test");
        }
    }
}

我想在Main()被调用的program.cs类中使用Params。我想我可以像上面那样简单地使用Params。我也尝试过使用Params;这两个都是错误的VS,因为它找不到指令。我也试过添加自己的命名空间:namespace MyNameSpace;在我的Params课上。当我这样做时,我仍然无法使用MyNameSpace;语句,因为它找不到。

我只是想提取出一堆函数到一个类,我可以重用。我如何调用这个类一旦它被创建?

-谢谢谢谢你的帮助。

不能访问我刚刚创建的类

如果您想访问Main函数中的Params对象,只需在顶部的Main函数中添加Params p = new Params ();

很可能你的问题是Main是静态的,这意味着它不能访问它之外的其他非静态的东西。如果在Program类中声明了Params,除非将其设置为静态,否则无法在Main中访问。

你是在谈论调用构造函数还是你正在设置的属性?您可以在基类的顶部设置类,然后调用它的实例。但由于它是一个静态类,您可能应该在main中使用helper方法。

namespace Example
{
    public class Program
    {
        Params p = new Params();
        string writefromParams()  // I exist just to give the string back from params with a nonstatic method
        {
            return p.key;
        }
        static void Main(string[] args)
        {
            Program p2 = new Program();  // set up a new instance of this very class
            Console.WriteLine(p2.writefromParams());  // get non static method from class

            Console.ReadLine();
        }
    }
}
相关文章: