【发布时间】:2012-02-02 08:48:23
【问题描述】:
请考虑以下我的代码:
当我使用 PropertyGrid 控件将新字符串添加到集合中时,出现错误 Constructor on type 'System.String' not found.。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
propertyGrid1.SelectedObject = Class1.Instance.StringCollection;
}
}
-----------------------------------------------------------------------------
public sealed class Class1
{
private static Class1 _instance = new Class1();
private List<string> _stringListCollection = new List<string>();
public Class1()
{
}
public static Class1 Instance
{
get { return _instance; }
}
public List<string> StringCollection
{
get { return _stringListCollection; }
set { _stringListCollection = value; }
}
}
【问题讨论】:
-
您的代码不正确。您可能将
Class1.Instance分配给了属性网格。通过分配Class1.Instance,然后按下StringCollection前面的''',然后按下添加按钮,你会得到你提到的错误。 -
提供的代码没有编译有两个原因: Instance 没有指定类型,因为没有声明名为 Instance 的类。我认为它应该被键入 Class1。其次,名为 Form1 的事件处理程序是非法的,因为方法不能与它的封闭类型同名。我将其更改为 Form1_Load 并根据事件处理程序中的代码将其分配给 Load 事件。
-
抱歉给大家带来了困惑。这不是我的实际代码,它更可能只是一个伪代码.. :)
标签: c#