0

これが簡単な質問だといいのですが。私は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のエラーです。また、独自の名前空間を追加してみました。namespaceMyNameSpace; 私のParamsクラスの周り。これを行っても、MyNameSpaceを使用することはできません。それが見つからないのでステートメント。

たくさんの関数を、再利用できるクラスに抽出したいだけです。作成したこのクラスを呼び出すにはどうすればよいですか?

-助けてくれてありがとう。

4

2 に答える 2

2

Main関数のParamsオブジェクトにアクセスする場合は、上部Params p = new Params ();の関数に追加するだけです。Main

おそらくあなたの問題は、メインが静的であるということです。つまり、メインが静的ではない他のものにアクセスできないということです。ProgramクラスでParamsを宣言した場合、静的にしない限り、Mainではアクセスできません。

于 2013-01-16T19:19:33.090 に答える
0

コンストラクターまたは設定しているプロパティの呼び出しについて話しているのですか?基本クラスの最上位にクラスを設定してから、そのインスタンスを呼び出すことができます。ただし、これは静的クラスであるため、メインでヘルパーメソッドを使用する必要があります。

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();
        }
    }
}
于 2013-01-16T19:23:06.833 に答える