C# 没有默认构造函数的默认值
当省略默认构造函数时,该类型的数据成员如何获取其默认值?如果给定了默认值,那么默认构造函数的用途是什么C# 没有默认构造函数的默认值,c#,C#,当省略默认构造函数时,该类型的数据成员如何获取其默认值?如果给定了默认值,那么默认构造函数的用途是什么 class Program { static void Main(string[] args) { Person person = new Person("SomeName"); Console.WriteLine(person.Age); Console.WriteLine(person.FamileName == null);
class Program
{
static void Main(string[] args)
{
Person person = new Person("SomeName");
Console.WriteLine(person.Age);
Console.WriteLine(person.FamileName == null);
}
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string FamileName { get; set; }
public Person(string name)
{
Name = name;
}
}
编辑:
这是我读过的一本书中的内容,这让我想到默认构造函数负责为数据成员提供默认值,但似乎我弄错了,如果需要,这只是我修改这些值的一种方法,如果我弄错了,请纠正我
每个C#类都提供了一个“免费”默认构造函数,如果需要,您可以重新定义它。根据定义,
默认构造函数从不接受参数。将新对象分配到内存后,默认
构造函数确保将类的所有字段数据设置为适当的默认值
如果您不想使用构造函数或字段初始化进行不同的指定(属性也是如此),那么对象字段总是使用默认值进行初始化 默认值通常对应于设置为零的所有位(参考类型为null,数字类型为0) 您可以使用构造函数设置其他值:
public Person()
{
Name = "Sebastian";
}
或初始值设定项:
public string Name { get; set; } = "Sebastian";
如果您不想使用构造函数或字段初始化进行不同的指定(属性也是如此),那么对象字段总是使用默认值进行初始化 默认值通常对应于设置为零的所有位(参考类型为null,数字类型为0) 您可以使用构造函数设置其他值:
public Person()
{
Name = "Sebastian";
}
或初始值设定项:
public string Name { get; set; } = "Sebastian";
在C#中,可以指定默认值
class Person
{
public string Name { get; set; } ="Someone";
public int Age { get; set; }
public string FamileName { get; set; }
}
如果要在对象的初始化中指定值,可以执行以下操作:
class Program
{
static void Main(string[] args)
{
Person person = new Person { Name= "SomeOne"; Age=16; };
Console.WriteLine(person.Age);
Console.WriteLine(person.FamileName == null);
}
}
如果只需要指定值或默认值,则不需要构造函数。你可以用上面提到的方法来做。
当我需要做一些额外的任务时,例如数据库连接、设置其他对象等,我通常使用构造函数
链接:在C中,您可以指定默认值
class Person
{
public string Name { get; set; } ="Someone";
public int Age { get; set; }
public string FamileName { get; set; }
}
如果要在对象的初始化中指定值,可以执行以下操作:
class Program
{
static void Main(string[] args)
{
Person person = new Person { Name= "SomeOne"; Age=16; };
Console.WriteLine(person.Age);
Console.WriteLine(person.FamileName == null);
}
}
如果只需要指定值或默认值,则不需要构造函数。你可以用上面提到的方法来做。
当我需要做一些额外的任务时,例如数据库连接、设置其他对象等,我通常使用构造函数
链接:类中的成员将使用默认值初始化。对于引用类型,这是
null
,对于值类型,这是默认值。对于对象中的成员来说没有什么特别之处——如果它们处于函数的中间,它们将具有相同的值:
public void Foo()
{
string name; // null
int age; // 0
bool isChild; // false
}
至于默认构造函数,它是确保数据类型安全的好地方。例如,您可能希望将任何引用类型的属性初始化为非空值:
class Widget
{
public string Name { get; set; }
public Widget()
{
Name = string.Empty; // this way someone can call Widget.Name safely
}
}
在相关说明中,您还应该看到:类中的成员将使用其默认值进行初始化。对于引用类型,这是
null
,对于值类型,这是默认值。对于对象中的成员来说没有什么特别之处——如果它们处于函数的中间,它们将具有相同的值:
public void Foo()
{
string name; // null
int age; // 0
bool isChild; // false
}
至于默认构造函数,它是确保数据类型安全的好地方。例如,您可能希望将任何引用类型的属性初始化为非空值:
class Widget
{
public string Name { get; set; }
public Widget()
{
Name = string.Empty; // this way someone can call Widget.Name safely
}
}
在相关注释中,您还应该看到:@EʜsᴀɴSᴀᴊᴊᴀᴅ 0不是
int
@Eʜs的最小值ᴀɴSᴀᴊᴊᴀᴅ 0不是int
的最小值。