在VS2008中C#实现了属性的自动读取/写入功能。那么这些自动实现的代码在VS2005中如何改写呢?
首先,更改.sln文件

把Format Version 10.00 -> Format Version 9.00
# Visual Studio 2008 -> # Visual Studio 2005

然后,改写geter/seter
// VS2008
- public string name { get; private set; }
// VS2005
- private string strName;
- public string name { get { return strName; } private set { this.strName = value; } }
最后,改写类的属性
// 类声明
- public class MyClass
- {
- public string firstName;
- public string lastName;
- }
// 赋值 - VS2008
- MyClass my = new MyClass() { firstName = "xiao", lastName = "bin" };
// 赋值 - VS2005
- MyClass my = new MyClass();
- my.firstName = "xiao";
- my.lastName = "bin";
执行结果:

VS2008(Console Application)
Program.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
-
- namespace testProperties
- {
- public class MyClass
- {
- public string firstName;
- public string lastName;
- }
-
- class Program
- {
- public string name { get; private set; }
-
- static void Main(string[] args)
- {
- string strName = "My Name: ";
- MyClass my = new MyClass() { firstName = "xiao", lastName = "bin" };
-
- Program pm = new Program();
- pm.name = my.firstName + my.lastName;
- strName += pm.name;
-
- Console.WriteLine(strName);
- }
- }
- }
VS2005(Console Application)
Program.cs
- using System;
- using System.Collections.Generic;
- using System.Text;
-
- namespace testProperty
- {
- public class MyClass
- {
- public string firstName;
- public string lastName;
- }
-
- class Program
- {
- private string strName;
- public string name { get { return strName; } private set { this.strName = value; } }
-
- static void Main(string[] args)
- {
- string strName = "My Name: ";
- MyClass my = new MyClass();
- my.firstName = "xiao";
- my.lastName = "bin";
-
- Program pm = new Program();
- pm.name = my.firstName + my.lastName;
- strName += pm.name;
-
- Console.WriteLine(strName);
- }
- }
- }
参考文章:
1. Auto-Implemented Properties