我已经习惯了许多Java IDE(Eclipse,Netbeans,IntelliJ),为您提供了一个命令,可以根据类中的字段为类生成默认构造函数.
例如:
public class Example
{
public decimal MyNumber { get; set; }
public string Description { get; set; }
public int SomeInteger { get; set; }
// ??? This is what I want generated ???
public Example(decimal myNumber, string description, int someInteger)
{
MyNumber = myNumber;
Description = description;
SomeInteger = someInteger;
}
}
Run Code Online (Sandbox Code Playgroud)
在大多数OOP语言中,让构造函数填充对象的所有字段是一项常见任务,我假设有一些方法可以节省在C#中编写此样板代码的时间.我是C#世界的新手,所以我想知道我是否遗漏了一些关于语言的基本信息?Visual Studio中有一些明显的选项吗?
c# resharper code-generation visual-studio-2010 visual-studio
编辑:我知道 C# 相当于For Each server As String In serversis foreach(var item in servers),但由于GetOPCServers返回对象,因此应该将其转换为可迭代类型。
我正在使用 COM 库开发一个应用程序。由于64位会出现问题,所以我的目标CPU是x86。
\n所有方法都按预期工作,除了GetOPCServers().
尽管使用相同 dll 的 Visual Basic 代码不会导致问题,但 C# 会抛出System.InvalidCastException以下错误:
\n\nSystem.Core.dll 中发生了类型为“System.InvalidCastException”的第一次机会异常
\n附加信息:
\n
\n\'System.String[*]\' t\xc3\xbcr\xc3\xbcndeki nesne \'System.String[]\' t\xc3\xbcr\xc3\xbcne at\xc4\xb1lamad\xc4 \xb1.
由于我的操作系统是土耳其语,因此对错误消息表示歉意。
\n\n\ntype 中的对象
\nSystem.String[*]不能赋值给System.String[]
System.String[*]和 和有什么区别System.String[]?
使用相同dll的VB代码运行没有异常
\nPublic Class OpcInfo\n Dim servers As …Run Code Online (Sandbox Code Playgroud) 这个gem是在我们反编译的一些互操作代码中创建的.我们无法弄清楚如何创建这个数组的实例,也不知道它是什么类型的数组.
看着Type.GetElementType给我的是它是一个类型的数组Double,但我们无法弄清楚它是如何不同的System.Double[].