字段:
字段是类的一个构成部分,它使类和结构可以封装数据.
using System;
using System.Collections.Generic;
using System.Text;
namespace Example_2
{
class Farmer
{
/// <summary>
/// Farmer类的无参数构造函数
/// </summary>
public Farmer()
{
}
/// <summary>
/// Farmer类的有参数构造函数
/// </summary>
/// <param name="n_Name"></param>
public Farmer(String n_Name)
{
name = n_Name;
}
/// <summary>
/// 姓名字段
/// </summary>
String name = String.Empty;
}
属性:
属性提供灵活的机制来读取数据,编写或计算私有字段的值.
通过属性可以方便的放问或修改字段的值.
通常属性包括get代码块与set代码块.
get代码块用来访问字段的值.
set代码块用来设置字段的值.
当然,属性也不必对字段进行任何操作.
在属性可以不同时包括get和set代码块,但至少应该包含其要的一个.因为两都不包含的属性是没有意义 的.
示例
using System;
using System.Collections.Generic;
using System.Text;
namespace sampsong
{
class Program
{
static void Main(String[] args)
{
Farmer song = new Farmer("宋井华 ");
Console.WriteLine(song.Name);
song.Name = "sampsong";
Console.WriteLine(song.Name);
Console.ReadLine();
}
}
class Farmer
{
/// <summary>
/// Farmer无参数的构造函数
/// </summary>
public Farmer()
{
}
/// <summary>
///Farmer有参数的构造函数
/// </summary>
/// <param name="N_Name"></param>
public Farmer(string N_Name)
{
name = N_Name;
}
/// <summary>
/// Name属性,用于设置和访问Farmar类的姓名
/// </summary>
public String Name
{
get
{
return name;
}
set
{
name = value;
}
}
/// <summary>
/// 姓名字段
/// </summary>
private String name = String.Empty;
}
}
结果:
宋井华
sampsong
注意:
在定义属性时的时候,如果只编写get代码块,哪么该属性只能是只读的
如果对其赋值,将会生异常
using System;
using System.Collections.Generic;
using System.Text;
namespace sampsong
{
class Program
{
static void Main(String[] args)
{
Farmer song = new Farmer("宋井华 ");
Console.WriteLine(song.Name);
song.Name = "sampsong";
Console.WriteLine(song.Name);
Console.ReadLine();
}
}
class Farmer
{
/// <summary>
/// Farmer无参数的构造函数
/// </summary>
public Farmer()
{
}
/// <summary>
///Farmer有参数的构造函数
/// </summary>
/// <param name="N_Name"></param>
public Farmer(string N_Name)
{
name = N_Name;
}
/// <summary>
/// Name属性,用于设置和访问Farmar类的姓名
/// </summary>
public String Name
{
get
{
return DateTime.Now.ToString();
}
}
/// <summary>
/// 姓名字段
/// </summary>
private String name = String.Empty;
}
}
按Ctrl+F5的时候将出现
错误 1 无法对属性或索引器“sampsong.Farmer.Name”赋值 -- 它是只读的 D:/Charp/test/Solution2/ConsoleApplication1/Program1.cs 13 13 ConsoleApplication1