1. 程式人生 > >C#基礎:泛型類和泛型方法

C#基礎:泛型類和泛型方法

  1.  public class Farm<T> :IEnumerator<T>  where T :Animal//泛型類使用where關鍵字進行約束
  2.  {                                                                                     //struct值型別   class引用型別  interface介面型別 new()公共無參建構函式
  3.        private List<T> animals=new List<T>();
  4.         public void Add(T animal) => animals.Add(animal);//浪漫噠表示式
  5.         }
  6.         //泛型類中實現泛型方法    where關鍵字進行約束   泛型方法識別符號U和類的識別符號T最好不同的表示
  7.         public Farm<U> GetSpecies<U>() where U:T {
  8.             Farm<U> speciesFarm = new Farm<U>();
  9.             foreach (T item in animals)
  10.             {
  11.                 if (item is U)
  12.                 {
  13.                     speciesFarm.Animals.Add(item as U);
  14.                 }
  15.             }
  16.             return speciesFarm;
  17.         }
  18.         //泛型方法
  19.         public T GetT<T1>() => default(T);
  20. }
  21.     //非泛型類實現泛型方法
  22.     public class Defaulters {
  23.         public T GetDefaulter<T>() => default(T);
  24.     }
  25.     //泛型類實現泛型方法 類的泛型識別符號不能和方法泛型識別符號相同
  26.     public class Defaulterss<T1> {
  27.         public T2 GetDefaulterss<T2>() where T2:T1=> default(T2);
  28.     } 
  29.  //泛型結構體
  30.     public struct MyStruct<T1, T2> {
  31.         public T1 item1;
  32.         public T2 item2;
  33.     }
  34.     //泛型介面
  35.     public interface MyInterface<T> where T : Animal {
  36.         bool Breed(T animal1,T animal2);
  37.         T Old { get; }//泛型屬性
  38.     } 
  39. //泛型委託
  40. public delegate T DelegateGeneric<T>(T item);

相關推薦

C#基礎方法

 public class Farm<T> :IEnumerator<T>  where T :Animal//泛型類使用where關鍵字進行約束  {                                                                 

方法

throws exceptio sys fun hello one type trac tac 一、泛型類   1.1、定義泛型類 public class A<T> { // 泛型類 private T a; public T

C# 基礎知識系列- 10 反射(二)

0. 前言 這篇文章延續《C# 基礎知識系列- 5 反射和泛型》,繼續介紹C#在反射所開發的功能和做的努力。上一篇文章大概介紹了一下泛型和反射的一些基本內容,主要是通過獲取物件的型別,然後通過這個型別物件操作物件。這一篇介紹一個在反射中很重要的內容:特性,以及上一篇未完成的內容——泛型在反射中的引用。 1.

2.方法

1.定義簡單泛型類: public class Pair<T> { private first; private second; public Pair() { first = null; second = null; } public Pa

方法

規則和限制  1、泛型的型別引數只能是類型別(包括自定義類),不能是簡單型別。  2、同一種泛型可以對應多個版本(因為引數型別是不確定的),不同版本的泛型類例項是不相容的。  3、泛型的型別引數可以有多個。  4、泛型的引數型別可以使用extends語句,例如<T

Java中的方法區別聯絡

泛型的概念大家應該都會,不懂的百度或者google,在java中泛型類的定義較為簡單<span style="font-size:18px;"><span style="font-s

JAVA基礎一、物件

1、複習  Java基礎語法規範         Java兩種大的資料型別:基本資料型別、引用資料型別         基本資料型別:八種回顧                       引用資料型別:陣列、字串、類、Scanner、Connection  變數的命名規則:

c#中的自定義方法接口

泛型方法 return bsp 其中 tel sts code 方式 void ? 泛型的產生其中一個原因就是為了解決原來集合類中元素的裝箱和拆箱問題: 一、泛型類: /// <summary> /// 返回前臺的消息 /// &

C#基礎字典

//Dictionary<K,V>示例程式碼 public static void Main(string[] args){       Dictionary<string, int> things = new Dictionary<string, int>();  

C#學習筆記(十八)數據結構

eric 訪問 空間 cap 添加數據 mes 出錯 雙向 添加 數據結構 只有這四種 a、集合:數據之間沒有特定的關系 b、線性結構:數據之間有一對一的前後聯系 c、樹形結構:數據之間有一對多的關系,一個父節點有多個子節點,一個子節點只能有一個父節點 d

Scala 函式、上邊界 下邊界

泛型類 泛型類:在Scala的類中定義引數型別 泛型類的應用場景:對類中的某些成員(field和method中的引數或變數)進行統一的型別限制,從而確保程式的健壯性和穩定性 class MyCollection[T]{ private val list =new ListBuf

C#基礎結構體的區別

    結構體和類非常相似,結構體用struct修飾,類用class修飾,結構體是值型別,類是引用型別。 具體示例程式碼如下:  public class MyClass//類         {             public int val;      

關於java裡面Collection包括List,Map等初始化內部匿名的一個例子

package com.yang.generalType; import java.util.ArrayList; import java.util.List; public class TestGeneralType { /** * @param args

C#入門學習集合、方法約束、委託

本章閱讀列表 泛型很難理解?不然 泛型集合和ArrayList的裝箱拆箱 常見的泛型型別 泛型類和泛型方法 泛型約束 泛型委託 泛型很難理解?不然 在接觸的一個新的概念的時候,總會感覺難以理解,當你掌握並能熟練地使用的時候,發現這個概念其實簡單的,我相信

C#裡面的(T),方法介面等簡單解釋

只是比較簡單的解釋,在實際使用中,如果遇到需要深入研究的場景,再翻閱相關資料深入研究下。 一、泛型T 這個T在實際使用中很常見,比如List<T>。其實我們還可以寫成List<object>。但是這樣寫會有一個問題。比如我把一個int資料存入到一個List<ob

C# T 方法的約束條件用法

類型變量 where class a 實現 fin 關系 int -h 支持 class A<T> where T:new() 這是類型參數約束,where表名了對類型變量T的約束關系。where T:A 表示類型變量是繼承於A的,或者是A本省。where T:

【轉】編寫高質量代碼改善C#程序的157個建議——建議107區分靜態單例

滿足 高質量代碼 同時 對象 method 導致 建議 單例 繼承 建議107:區分靜態類和單例 有一種觀點認為:靜態類可以作為單件模式的一種實現方式。事實上,這是不妥當的。按照傳統的觀點來看,單例是一個實例對象。而靜態類並不滿足這一點。靜態類也直接違反面向對象三大特性

ABAP基礎數據

日期 分享圖片 abap hour padding 字段長度 lac bit 變量 數據類型-Data Type:定義程序中可以使用的數據類型,使用前要先定義 數據變量-Data Variable:參照數據類型定義的、可以存儲值的變量,就是變量嘛 數據類型 數據類型在AB

04 java 基礎數據

java 基礎 浮點 占用空間 數組 float 轉型 占用 種類型 數據 java 數據類型:基本類型與引用類型 基本類型:數值型,其中數值型分為整型、浮點型,整型包括 byte、short 、int、long ,默認為 int 類型。浮點類型分為單精度、雙精度,分為 f

java介面、方法

泛型介面: 定義一個泛型介面:   通過類去實現這個泛型介面的時候指定泛型T的具體型別。 指定具體型別為Integer: 指定具體型別為String: 指定具體型別為一個自定義的物件: 泛型類: 在編譯器,是無法知道K和V具體是什麼型別,只