可以不必为了给属性赋值而写很多的构造函数重载了。节约了代码量。
注:Test本身的构造函数会被执行,即Console.WriteLine("Test constructor");
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Text.RegularExpressions;
namespace TestCS
{
public class Test
{
public int X;
public int Y;
public Test2 t;
public Test()
{
Console.WriteLine("Test constructor");
}
public override string ToString()
{
return X.ToString() + "," + Y.ToString() + "," + t.ToString();
}
}
public class Test2
{
public int Z;
public override string ToString()
{
return "In Test2--"+Z.ToString();
}
}
public class Progarm
{
public static void Main(string[] args)
{
Test t = new Test() { X = 1, Y = 2, t = new Test2() { Z = 3 } };
Console.WriteLine(t.ToString());
}
}
}
分享到:
相关推荐
C# 3.0 的发布为开发者带来了许多便利的新特性,如自动实现的属性、对象初始化器和集合初始化器等。这些特性极大地简化了代码编写过程,并提高了代码的可读性和可维护性。通过本文的介绍,希望读者能够更好地理解...
LINQ是C# 3.0引入的重要特性,提供了统一的查询语法,支持查询对象、XML和数据库等。它包含`LINQ to Objects`(用于查询内存中的对象集合)、`LINQ to XML`(用于XML数据的查询)和`LINQ to SQL`(用于数据库查询)...
在C# 3.0中,可以使用`static`关键字和私有构造函数来实现线程安全的单例,或者利用`Lazy<T>`类来延迟初始化。 3. 建造者模式:建造者模式将复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。C# ...
6. **对象和集合初始化器**:C# 3.0允许在声明时初始化对象的字段或集合,使得代码更简洁。如`var person = new Person { Name = "John", Age = 30 };`。 7. **匿名方法和事件**:匿名方法可以用于简化事件处理程序...
这些特性允许我们在创建对象时同时设置其属性值,或者初始化集合,使得代码更加整洁,例如: ``` var student = new Student { Name = "张三", Age = 20 }; var list = new List<int> { 1, 2, 3 }; ``` 6. **...
C#3.0引入了对象初始化器,使得创建和初始化类实例变得更加简洁和直观。例如: ```csharp var person = new Person { Name = "张三", Age = 25 }; ``` 这种语法可以显著减少构造函数和初始化代码的复杂性,尤其...
5. **对象和集合初始器**:这些特性允许开发者在声明变量时同时初始化它们,使得代码更易读,减少错误。 6. **查询表达式(LINQ)**:语言集成查询是C# 3.0的一大亮点,提供了对数据库、XML、数组等数据源进行查询...
var关键字允许我们声明变量而不指定具体类型,编译器会根据初始化值自动推断类型。这一特性提高了代码的可读性,减少了类型冗余。 除此之外,本书还会涵盖C#的基础语法、面向对象编程概念(如封装、继承和多态)、...
在对象初始化方面,C# 3.0引入了对象初始器和集合初始器,使得创建和初始化对象变得更加简洁。对象初始器允许在类声明中直接初始化成员,而集合初始器则可以方便地初始化集合类型的实例。 在属性支持上,C# 3.0引入...
2. **对象初始化器(Object Initializers)** - 允许在创建对象时直接初始化其属性。 - 示例代码: ```csharp Person person = new Person { Name = "Tom", Age = 25 }; ``` 3. **匿名类型(Anonymous Types)** ...
在深入探讨C#3.0规范中的XML文档标准与基本语法之前,我们首先需要理解C#3.0版本的重要性和其引入的新特性,以及XML文档在C#编程中的作用。 ### C#3.0规范概览 C#3.0是在2007年随.NET Framework 3.5一同发布的,它...
- **构造函数**:用于初始化对象。 - **属性**:提供了一种简化的方式访问类的私有字段。 - **索引器**:使类能够像数组一样被索引。 - **事件**:用于在类之间传递信息。 - **运算符**:用户可以自定义类的操作符...
**对象初始化器与集合初始化器**:对象初始化器和集合初始化器是C# 3.0提供的简化对象创建和集合填充的语法糖。通过使用这些初始化器,可以一次性设置对象的多个属性或集合的多个元素,使得代码更加紧凑和直观。 **...
在C# 2.0中,你需要通过构造函数传递值,而在C# 3.0中,可以使用对象初始化器: ```csharp // C# 2.0 MyClass c = new MyClass(); c.Prop = "asdads"; // C# 3.0 MyClass c = new MyClass { Prop = "test" }; ``` ...
8. **对象和集合初始化器**:简化了对象和集合的初始化过程,使得代码更加简洁。 【VB9.0新特性】 1. **类型推断(Option Infer)**:VB9.0允许类型推断,即编译器可以根据变量的初始值自动推断其类型,增强了代码...
9. **对象和数组初始化器**:使得创建对象或初始化数组时可以更直观,减少了冗余代码。 《C#3.0宝典》不仅涵盖了这些核心特性,还详细讲解了如何在实际项目中应用这些技术。源文件的提供则让读者有机会亲手实践书中...
9. **对象和集合初始化器**:除了集合初始化器,C# 3.0还提供了对象初始化器,可以一次性设置新创建的对象的所有属性,使代码更清晰。 10. **可空值类型**:C# 3.0引入了可空值类型,允许非引用类型的变量表示“无...