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

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

編輯:關於C語言

typeof 和 GetType

typeof 運算符返回作為 System.Type 對象傳遞給它的類的類型。GetType() 方法是相關的,並且返回類或異常的運行時類型。typeof 和 GetType() 都可以與反射一起使用,以動態地查找關於對象的信息,如下面的示例所示:

using System;
using System.Reflection;
public class Customer
{
    string name;
    public string Name
    {
      set
      {
        name = value;
      }
      get
      {
        return name;
      }
    }
}
public class TypeTest
{
    public static void Main()
    {
      Type typeObj = typeof(Customer);
      Console.WriteLine("The Class name is {0}",
         typeObj.FullName);
     // Or use the GetType() method:
      //Customer obj = new Customer();
      //Type typeObj = obj.GetType();
      Console.WriteLine("\nThe Class Members\n=================\n ");
      MemberInfo[] class_members = typeObj.GetMembers();
      foreach (MemberInfo members in class_members)
      {
        Console.WriteLine(members.ToString());
      }
      Console.WriteLine("\nThe Class Methods\n=================\n");
      MethodInfo[] class_methods = typeObj.GetMethods();
      foreach (MethodInfo methods in class_methods)
      {
        Console.WriteLine(methods.ToString());
      }
    }
}

運行此程序,輸出如下:

The Class name is Customer
The Class Members
=================
Int32 GetHashCode()
Boolean Equals(System.Object)
System.String ToString()
Void set_Name(System.String)
System.String get_Name()
System.Type GetType()
Void .ctor()
System.String Name
The Class Methods
=================
Int32 GetHashCode()
Boolean Equals(System.Object)
System.String ToString()
Void set_Name(System.String)
System.String get_Name()
System.Type GetType()

這為我們顯示了從 System.Object 繼承的所有類的成員,並且還展示了一種方法,C# 在內部將 get 和 set 屬性 Accessors 表示為 get_xxx() 和 set_xxx() 方法。

在下一個示例中,我們使用 GetType() 在運行時查找表達式的類型:

using System;
public class TypeTest
{
 public static void Main()
 {
  int radius = 8;
  Console.WriteLine("Calculated area is = {0}",
               radius * radius * System.Math.PI);
  Console.WriteLine("The result is of type {0}",
               (radius * radius * System.Math.PI).GetType());
 }
}

此程序的輸出告訴我們,結果是 System.Double 類型,選擇它是因為System.Math.PI 是這種類型。

Calculated area is = 201.061929829747
The result is of type System.Double

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