1

次のコードがあります。

   public static class ScraperMasterUriDetails
    {
        public static Dictionary<Guid, string> MasterUriDetails;

    }

ただし、辞書に整数を追加する必要があると判断したDictionary<ScraperMasterUriDetails>ため、プロパティといくつかのパラメーターをコンストラクターに追加すると考えました。

しかし、C# ではそれができません。実装しようとしているものを実装するにはどうすればよいですか?

編集:

経験豊富なメンバーが私の投稿を編集したので、そのままにしておきます。辞書を使うことは気にしない(当時はちょうどいい使い方だった)

基本的に、構造的に 3 種類のデータのリストが必要なだけですが、値を格納するクラスのインスタンスを常に 1 回参照する必要があるため、静的です。今、私は常に List of(T) を次のように行ってきました。

public class WebsiteTitles
{
    public string WebsiteId { get; set; }
    public string Keywords { get; set; }

    public WebsiteTitles(string websiteguid, string keywords)
    {
        WebsiteId = websiteguid;
        Keywords = keywords;
    }

    public WebsiteTitles()
    {
    }
}

そして、次のことを行いました

           List<WebsiteTitles> _siteTitles = new List<WebsiteTitles>();
            _siteTitles.Add(new WebsiteTitles("blah", "keyword")); 

ただし、このシナリオでは、上記と同様のものが必要ですが、静的です (インスタンスを作成したくないなど)。すべての提案に本当に感謝しているため、投稿を編集して詳細情報を提供しました。

注として、LINQ を使用していくつかのレコードを抽出することをお勧めします。たとえば、get record where guid == guid などです。使用するのはこれだけです。

4

3 に答える 3

2

シングルトン。

http://en.wikipedia.org/wiki/Singleton_pattern

于 2010-08-07T21:39:30.663 に答える
1

コレクション初期化構文を使用しないのはなぜですか? http://msdn.microsoft.com/en-us/library/bb384062.aspx

public static class ScraperMasterUriDetails
{
    public static List<WebsiteTitles> MasterUriDetails = new List<WebsiteTitles>()
    {
        new WebsiteTitles()
        {
            WebsiteId = Guid.NewGuid().ToString(),
            Keywords = "programming, fish, popsicles, nihilism",
        },
    };
}

ID で Web サイトを検索する必要がある場合は、必ず辞書を使用してください。

public static class ScraperMasterUriDetails
{
    public static Dictionary<Guid, string> MasterUriDetails = new Dictionary<Guid, string>()
    {
        { Guid.NewGuid(), "programming, fish, popsicles, nihilism" },
        { new Guid("abcdef" /* etc */), "ankles, sprocket, glucose, the moon" },
    };
}

編集前:

辞書はリストではないことに注意してください。

ただし、もちろんいつでも静的メンバーに値を追加できます。コンパイル時に定義する必要はありません。

public class SomeOtherClass
{
    public void SomeNonStaticMethod(Guid key, string subUrl)
    {
        ScraperMasterUriDetails.MasterUriDetails[key] = "http://www.helpmeimstuckinsideasadnsserver.com/" + subUrl;
    }
}

これ以上の情報が必要な場合は、「int を追加」するために使用した構造を説明してください。その構造を定義するのに問題がある場合は、辞書に何をさせたいかを説明してください。GUID を渡すと、どのような情報が返されますか?

于 2010-08-07T21:39:46.427 に答える
1

静的コンストラクターは、ユーザーではなく自動的に呼び出されます。どのパラメーターを渡すかを知る方法はありません。

だから、どちらか

  1. コンストラクターでプロパティを値に設定します
  2. Initialize(int a, ...) など、追加する別のメソッドで後で設定します。
于 2010-08-07T21:42:36.000 に答える