類別中 最簡單的SET GET
久沒用真的會忘 寫一下備查
class asshold //類
{
string uname = ""; //private 私用
public string Name //public公用
{
get { return uname;
} //客戶要取值 會回傳uname 給客戶
set { uname = value; } //客戶要寫入value是值 會等於 uname
}
}
FrameWork3.5可用縮寫如下
public string test { get;set;}
下面是客戶端
class Program
{
static void Main(string[] args)
{
asshold myclass = new asshold();
asshold.Name = "call me brother"; //set
Console.WriteLine(asshold.Name ); //get
asshold.Name = "Silvia";
//set
Console.Write(asshold.Name); //get
}
}
2013年8月21日 星期三
2013年8月19日 星期一
C#泛型的意義 (Generics)
本文出處
本文有稍微修改成自己看得懂的版本
Q:何謂泛型(Generics)?
A:在定義泛型類別時 不指定某些變數的具體類型
而是用一個類型參數代替,在使用這個類別時
這個類型的參數會由,一個具體的類型所代替
比較下面兩個例子。
範例一泛型是string
範例二 泛型變成int了
範例三
泛型類別可以支援一個以上的泛型變數,兩者型態一致。
範例四
兩者型態也可不一致,就要宣告兩個型態的關鍵字。
若要在 Method 達到泛型的效果,又該如何做呢?參考以下:
泛型變成int code 如下
本文有稍微修改成自己看得懂的版本
Q:何謂泛型(Generics)?
A:在定義泛型類別時 不指定某些變數的具體類型
而是用一個類型參數代替,在使用這個類別時
這個類型的參數會由,一個具體的類型所代替
比較下面兩個例子。
範例一泛型是string
namespace TestGenerics {
class Program {
static void Main(string[] args)
{ //Record<string> 此時泛型類別中的T=string
Record<string> score1 = new Record<string>("Alex", "A");
Console.WriteLine("Alex " + score1.Getgrade());
Console.ReadKey();
}
}//定義公開 泛行類別Record<T> T是尚未指定的類型
public class Record<T>
{
private string _name;
private T _grade;//T的類型還沒定義 但是定義後可以宣告物件
public Record(string name, T grade)//想像T是一個類型比如是string
{
this._name = name;
this._grade = grade;
}
public T Getgrade()//用泛型也可指定回傳的類型
{
return this._grade;
}
}
}
範例二 泛型變成int了
namespace TestGenerics {
class Program {
static void Main(string[] args) {
Record<int> score1 = new Record<int>("Alex", 80);
Console.WriteLine("Alex " + score1.Getgrade());
Console.ReadKey();
}
}
public class Record<T> {
private string _name;
private T _grade;
public Record(string name, T grade) {
this._name = name;
this._grade = grade;
}
public T Getgrade() {
return this._grade;
}
}
}
範例三
泛型類別可以支援一個以上的泛型變數,兩者型態一致。
public class Record<T> {
private string _name;
private T _math;
private T _phy;
public Record(string name,T math,T phy{
this._name = name;
this._math = math;
this._phy = phy;
}
public T GetMath(){
return this._math
}
public T GetPhy(){
return this._phy;
}
}
範例四
兩者型態也可不一致,就要宣告兩個型態的關鍵字。
public class Record<S, T>{
private string _name;
private T _math;
private S _phy;
public Record(String name, S phy, T math) {
this._name = name;
this._math = math;
this._phy = phy;
}
public T GetMath() {
return this._math;
}
public S GetPhy()
{
return this._phy;
}
}
若要在 Method 達到泛型的效果,又該如何做呢?參考以下:
class Program {
static void Main(string[] args) {
Console.WriteLine(Show<string>("Hello!"));
Console.ReadKey();
}
static T Show<T>(T t) {
T Result = t;
return Result;
}
}
泛型變成int code 如下
class Program {
static void Main(string[] args) {
Console.WriteLine(Show<int>(9999));
Console.ReadKey();
}
static T Show<T>(T t) {
T Result = t;
return Result;
}
}
訂閱:
文章 (Atom)