手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

Visual Studio:针对 Java 开发人员的 C# 编程语言

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
返回页首

属性

在 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;

}


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS