0

わかりましたので、奇妙な質問があります。これを正しく表現しているかどうか確信が持てないため、検索でこれに関する情報が見つからなかった可能性があります。

そのコンピューターに関するさまざまな情報が記録されたコンピューターを表す Host オブジェクトを定義するクラスがあります。

public sealed class Host
{
    public Host(string sName, IPAddress sAddress, string sType, string osName, bool sFirewall)
    {
        Name = sName;
        Address = sAddress;
        Type = sType;
        FirewallActive = sFirewall;
        OperatingSystem = osName;
    }

    public Host()
    {
        Name = "New Host";
        Address = IPAddress.Parse("127.0.0.1");
        Type = HostType.Desktop;
        OperatingSystem = HostOS.Win7;
        FirewallActive = true;
    }

    /// <summary>
    /// The name of the host
    /// </summary>
    public string Name { get; private set; }

    /// <summary>
    /// The ip address of the host
    /// </summary>
    public IPAddress Address { get; private set; }

    /// <summary>
    /// The type of the host
    /// </summary>
    public string Type { get; private set; }

    /// <summary>
    /// The operating system the system uses
    /// </summary>
    public string OperatingSystem { get; private set; }

    /// <summary>
    /// Whether the system has a firewall enabled
    /// </summary>
    public bool FirewallActive { get; private set; }
}

次に、いくつかの設定に対して定数値を持つオブジェクトをいくつか用意します。

public sealed class HostType
{
    public static string Desktop
    {
        get { return "Desktop"; }
    }
}

public sealed class HostOS
{
    public static string Win7
    {
        get { return "Windows 7"; }
    }
}

新しい Host オブジェクトを作成するときに、MessageBox.Show( ...) パラメータ リストのその部分に到達すると、さまざまな MessageBoxButtons オプションのリストが自動的に提案されます。

のように、リストを変更したくありません。Intellisense に、さまざまな HostOS 定数文字列であるオプションのリストを表示してもらいたいだけです。

4

1 に答える 1

1

クラスではなく列挙型として定義する必要があります。

例えば:

public enum HostType
{
  Desktop,
  Server,
  Laptop
}

クラス ホストでは、プロパティ Type を HostType として定義する必要があります。

public HostType Type { get; private set }
于 2013-05-17T04:50:25.690 に答える