Visual Studio:针对 Java 开发人员的 C# 编程语…
2008-02-23 10:15:41来源:互联网 阅读 ()
属性
在 C# 中,属性是类、struct,或接口的命名成员,它提供了一种简洁的途径,可以通过所谓的 get 和 set 访问器方法访问私有字段。
下面的代码片断为类 Animal 声明了一个名为 Species 的属性,它抽象了对名为 name 的私有变量的抽象访问:
public class Animal
{
private string name;
public string Species
{
get
{
return name;
}
set
{
name = value;
}
}
}
通常,属性与它访问的内部成员有相同的名称,但是属性以大写字母开头(例如上面的示例中的 Name),或者内部成员带有“_”前缀。同时还需要注意 set 访问器中所用的名为 value 的隐式参数 — 这种参数具有基础成员变量类型。
实际上,访问器在内部表示成 get_X() 和 set_X() 方法,从而与 .NET 语言保持兼容,因为 .NET 语言并不支持访问器(如本文前面的 typeOf 和 GetType() 部分中的屏幕截图所示)。一旦定义好属性,就可以非常容易地获取或设置它的值:
Animal animal = new Animal() // Set the property animal.Species = "Lion"; // Get the property value string str = animal.Species;
如果属性只有 get 访问器,它就是一个只读属性。如果它只有 set 访问器,它就是一个只写属性。如果两者都有,则它是一个可读写属性。
结构
C# 支持 struct 关键字,它是源于 C 的另一个项,但是不可用于 Java。可以将 struct 看作是一个轻量级类。它可以采用与类大致相同的方式包含构造函数、常量、字段、方法、属性、索引器、运算符和嵌套类型。structs 不同于类,因为它们不能是抽象的,并且不支持实现继承。结构与类还有一点重要的不同,结构是值类型的,而类是引用类型的。在构造函数的工作方式上,结构也有所不同。特别是,编译器总是提供默认的不带参数的构造函数,并且不允许您替换它。
在下面的示例中,我们使用 new 关键字并且通过初始化实例的成员初始化了一个 struct:
using System;
public struct CustomerStruct
{
public int ID;
public string name;
public CustomerStruct(int customerID, string customerName)
{
ID = customerID;
name = customerName;
}
}
class TestClass
{
public static void Main(string[] args)
{
// Declare a CustomerStruct using the default constructor
CustomerStruct customer = new CustomerStruct();
Console.WriteLine("Struct values before initialization");
Console.WriteLine("ID = {0}, Name = {1}", customer.ID,
customer.name);
customer.ID = 100;
customer.name = "Robert";
Console.WriteLine("Struct values after initialization");
Console.WriteLine("ID = {0}, Name = {1}", customer.ID,
customer.name);
}
}
当我们编译并运行上面的代码时,它的输出显示,该结构的变量在默认情况下是已初始化的。int 变量初始化为 0,而字符串变量初始化为空字符串:
初始化前的 struct 变量
ID = 0, Name =
初始化后的 truct 值
ID = 100, Name = Robert
注意,当我们使用另一种表示法(CustomerStruct customer)声明 customer 时,它的成员变量将不被初始化,因此,如果试图在为它们赋值前使用它们,将会产生编译时错误。
C# 中的数组
数组是具有相同数据类型的项的有序集合,通过数组名以及所期望的项相对于数组开始位置的偏移量可以访问数组。与 Java 相比,在 C# 中声明和使用数组的方式有一些重要的不同,我将在这一部分中对此进行介绍。
一维数组
一维数组以线性方式存储了固定数目的项,它仅仅需要一个索引值就可以确定任何一项。
在 C# 中,数组声明中的方括号必须紧跟数据类型,而不可以像在 Java 中一样出现在变量名的后面。因此,可以使用下面的语法来声明整数类型的数组:
int[] MyArray;
而下面的声明在 C# 中是无效的:
int MyArray[];
一旦声明了数组,就可以使用新的关键字来设置它的大小,这与 Java 中是完全一样的:
int[] MyArray; // declares the array reference MyArray = new int[5]; // creates a 5 element integer array
然后,我们就可以使用与 Java 完全相同的语法来访问一维数组中的元素,注意 C# 数组的索引也是从零开始的:
MyArray [4] // accesses the last element in the array
初始化
可以使用与 Java 相同的语法在创建时对数组元素进行初始化:
MyArray = new int[5] {1, 2, 3, 4, 5};
与 Java 不同,初始化器的数目必须与数组大小完全匹配。 我们可以利用这一特性在一行中声明和初始化 C# 数组:
int[] TaxRates = {0, 20, 23, 40, 50};
此语法创建了一个大小与初始化器的数目相等的数组。
程序循环中的初始化
C# 中初始化数组的另一种方法就是使用 foreach 循环。下面的循环将数组中的每个元素都设置为零:
int[] MyLittleArray = new int[5];
foreach (int i in MyLittleArray)
{
MyLittleArray[i] = 0;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash

