好的,所以我有一个奇怪的问题 - 我不确定我是否正确地说这个,这可能就是为什么我在搜索中没有找到任何关于此的信息。
我有一个类定义一个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对象时,我希望Intellisense在构建新的Hosts([parameters])对象时到达那个部分时自动提示“HostOS”变量,类似于你使用MessageBox时的方式.Show(...)当你到达参数列表的那一部分时,它会自动建议各种MessageBoxButtons选项的列表。
同样,我不想修改列表 - 我只想让Intellisense向我展示各种HostOS常量字符串的选项列表。
答案 0 :(得分:1)
您应该将其定义为枚举而不是类。
例如:
public enum HostType
{
Desktop,
Server,
Laptop
}
在类主机中,您必须将属性Type定义为HostType
public HostType Type { get; private set }