我有类Important,并且创建了这个类的一些对象。我想让用户选择这个类的主要对象。看看下面的代码:
public class Program
{
public static void Main(string[] args)
{
Important imp1 = new Important("Important 1");
Important imp2 = new Important("Important 2");
Important imp3 = new Important("Important 3");
imp2.SetMostImportant();
Console.Write(Important.MostImportant.Name);
}
public class Important
{
public Important(string name)
{
Name = name;
if(MostImportant == null)
SetMostImportant();
}
public string Name { get; private set; }
public static Important MostImportant { get; private set; }
public void SetMostImportant()
{
MostImportant = this;
}
}
}
这是好的解决方案吗?如果没有,请告诉我为什么不。
之前,为了实现这种事情,我刚刚创建了名为eg的boolean字段IsMainObject,当我想要更改主对象时,我迭代了特定类的所有对象(或对象组),除了我想成为main的元素,并将boolean更改为false,在我的新候选中我只将flag设置为true 。示例如下:
public class Program
{
public static void Main(string[] args)
{
Important imp1 = new Important("Important 1");
Important imp2 = new Important("Important 2");
Important imp3 = new Important("Important 3");
List<Important> list = new List<Important> { imp1, imp2, imp3 };
foreach(var item in list.Where(x => x.Name != "Important 2"))
{
item.SetMostImportant(false);
}
imp2.SetMostImportant(true);
Console.Write(list.FirstOrDefault(x => x.MostImportant == true).Name);
}
public class Important
{
public Important(string name)
{
Name = name;
}
public string Name { get; private set; }
public bool MostImportant { get; private set; }
public void SetMostImportant(bool val)
{
MostImportant = val;
}
}
}
我不喜欢这个解决方案,因为:
MostImportant
是否适用于多个没有迭代的对象。......还有更多,但你明白了。
答案 0 :(得分:1)
ul. Niecała 10, 05-800 Pruszków
是一个很好的解决方案,比
好多了public static Important MostImportant { get; private set; }
在实现“singleton”类时,有一个类型的静态属性并不罕见。我编写的代码类似于:
public bool MostImportant { get; private set; }