程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Visual Studio:針對Java開發人員的C#編程語言(1)(13)

Visual Studio:針對Java開發人員的C#編程語言(1)(13)

編輯:關於C語言

屬性

在 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 時,它的成員變量將不被初始化,因此,如果試圖在為它們賦值前使用它們,將會產生編譯時錯誤。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved