新对象时代码生成道具
Code generating props when newing object
我有一个具有 100 个属性的对象。 Resharper 或 Visual Studio 2017 中是否有为对象的所有属性生成代码的功能。例如
var myObject = new ObjectWithMultipleProps
{
Prop1 = "",
Prop2 = 0,
Prop3 = "",
...etch
}
我正在创建单元测试,如果可能的话,它会加快速度。
您似乎对创建实例的含义有误解。实例化对象(这是您调用 new ...
时)不可能对您的任何成员都没有价值。所有这些成员都从运行时初始化为该成员类型的默认类型。特别是您不能 部分初始化 您的对象,即仅将某些成员设置为初始值,而不设置其他成员。创建实例是一个全有或全无的操作。
所以如果你简单地这样写:
var myObject = new ObjectWithMultipleProps();
myObject
中的所有属性将具有它们的默认值。您甚至可以打印它们:
Console.WriteLine(myObject.Prop2); // this will print 0
您当然可以将所有这些赋值写入 class´ 构造函数:
class ObjectWithMultipleProps
{
public ObjectWithMultipleProps()
{
Prop1 = null;
Prop2 = 0;
}
}
然而,这具有完全相同的效果。
无论如何,您可能会得到 NullReferenceException
。这是因为所有引用类型默认为 null
,对这些成员的任何调用都会产生该异常,如以下代码所示:
var a = myObject.Prop1.SubsString(0, 1);
因为 Prop1
被初始化为 null
一旦实例完全创建,你会得到一个 NullReferenceException
,因为你不能调用 null
上的任何成员。
如果你想为你的成员使用其他默认值,你必须创建构造函数并在那里设置值。
输入这么多:
var myObject = new ObjectWithMultipleProps {
然后按Ctrl+J,Tab。下一个未使用的字段或 属性 将为您自动完成。你可以再按Ctrl+J,会弹出字段的类型,你可以选择合适的值。或者您可以开始输入 new
然后按 Ctrl+J 它会自动为您完成输入。
然后键入一个逗号,并对每个字段重复该过程。您已经指定的字段不会出现在列表中。如果您不想为某个字段设置值,则将其从初始化列表中省略,它将获得其默认值。
我有一个具有 100 个属性的对象。 Resharper 或 Visual Studio 2017 中是否有为对象的所有属性生成代码的功能。例如
var myObject = new ObjectWithMultipleProps
{
Prop1 = "",
Prop2 = 0,
Prop3 = "",
...etch
}
我正在创建单元测试,如果可能的话,它会加快速度。
您似乎对创建实例的含义有误解。实例化对象(这是您调用 new ...
时)不可能对您的任何成员都没有价值。所有这些成员都从运行时初始化为该成员类型的默认类型。特别是您不能 部分初始化 您的对象,即仅将某些成员设置为初始值,而不设置其他成员。创建实例是一个全有或全无的操作。
所以如果你简单地这样写:
var myObject = new ObjectWithMultipleProps();
myObject
中的所有属性将具有它们的默认值。您甚至可以打印它们:
Console.WriteLine(myObject.Prop2); // this will print 0
您当然可以将所有这些赋值写入 class´ 构造函数:
class ObjectWithMultipleProps
{
public ObjectWithMultipleProps()
{
Prop1 = null;
Prop2 = 0;
}
}
然而,这具有完全相同的效果。
无论如何,您可能会得到 NullReferenceException
。这是因为所有引用类型默认为 null
,对这些成员的任何调用都会产生该异常,如以下代码所示:
var a = myObject.Prop1.SubsString(0, 1);
因为 Prop1
被初始化为 null
一旦实例完全创建,你会得到一个 NullReferenceException
,因为你不能调用 null
上的任何成员。
如果你想为你的成员使用其他默认值,你必须创建构造函数并在那里设置值。
输入这么多:
var myObject = new ObjectWithMultipleProps {
然后按Ctrl+J,Tab。下一个未使用的字段或 属性 将为您自动完成。你可以再按Ctrl+J,会弹出字段的类型,你可以选择合适的值。或者您可以开始输入 new
然后按 Ctrl+J 它会自动为您完成输入。
然后键入一个逗号,并对每个字段重复该过程。您已经指定的字段不会出现在列表中。如果您不想为某个字段设置值,则将其从初始化列表中省略,它将获得其默认值。