我很久以前就是VB.Net程序员,但最近我开始学习C#。我知道Vb.Net分享了C#的许多功能和反之,所以我试图将我的类代码文件(我使用的最多)转换为“C#native”。但我一直面临着对象的问题,因为在我看来(也许我错了)他们的结构与他们在Vb.Net中的结构不一样
对象的某些属性可能会丢失或者我找不到,我不知道它们的C#等价物是什么。现在我有这些。
Private g as object
现在,如果想要向对象添加/分配新值我写
g.item("exampleKey") = "exampleValue"
但如果我在C#中尝试这个
private object g;
g.item("exampleKey") = "exampleValue"
最后一行给我一个错误
另一方面,如果我想用DataTable“s”填充“g”对象,我之前在填充TableAdapter时使用了“E”
E.fill(s)
我写
g = s.NewRow
或
g = s.Rows(0)
毕竟我开始做对象编辑
g.BeginEdit()
然后我按照上面的方式进行编辑,之后我通过
结束编辑g.item("exampleKey") = "exampleValue"
g.item("exampleKey2") = "exampleValue3"
...
g.endEdit()
如果我想将“g”对象添加为DataTable的一行“我写”
s.rows.add(g)
最后,如果我想用DataTable更新TableAdapter“E”,“我制作
E.update(s)
如何在C#中编写相同的内容?我知道有IEnumerables,Lists,Dictionary,IDictionary等等,但我不知道哪种方法最接近我的情况。
答案 0 :(得分:3)
C#中的索引和基于键的选择器使用方括号。例如:
g["exampleKey"] = "value"; // Equivalent to VB.NET --> g.Item("exampleKey") = "value";
答案 1 :(得分:0)
您必须关联所有代码,这些代码来自object
。所以你需要做的是实现 C#的结构。重要的是要注意:
public class Example
{
public Example()
{
// Constructor
}
public void Method()
{
// Call Method, which will perform a task.
}
public string Demo { get; set; } // Property
}
因此,在我们的object
,Example
中,您有几个项目。 构造函数将在构建object
时初始化。如果您不添加一个,CLR将自动添加一个。您的方法将构建为执行您选择的任务。然后是一个 Property ,我现在作为匿名属性。
要调用此对象,您只需执行以下操作:
Example example = new Example();
example.Demo = @"Value";
您已为属性分配了一个值,您还构建了object
。
显然这是一个演示,它不是最有用的,但加上委托它是非常有用的。希望这提供了一些见解,但就您的问题而言:
使用方括号Index
实现 Key
或[ ]
。所以你需要这样做:
g.Item["ExampleKey"] = "value";
g.Item["ExampleKey"].Value = "value";
可能会根据您的尝试而有所不同。希望这会有所帮助 -