1. 程式人生 > >c#建立靜態類,在其中定義一個泛型方法,實現查詢陣列元素的功能

c#建立靜態類,在其中定義一個泛型方法,實現查詢陣列元素的功能

泛型中不能直接比較,要用where T :IComparable

而且靜態類中不能傳遞出來結果。。只能在靜態類的內部輸出結果。

1:比較和排序的概念

    比較:兩個實體類之間按>,=,<進行比較。

    排序:在集合類中,對集合類中的實體進行排序。排序基於的演算法基於實體類提供的比較函式。

    基本型別都提供了預設的比較演算法,如string提供了按字母進行比較,int提供了按整數大小進行比較。

2:IComparable和IComparer

    當我們建立了自己的實體類,如Student,預設想要對其按照年齡進行排序,則需要為實體類實現IComparable介面。

   可使用IComparer來實現一個自定義的比較器。

3:IComparable和IComparer的泛型實現IComparable<T>和IComparer<T>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    static class index
    {
        public static void A<T>(T b,T[] a) where T : IComparable  //要加static
        {
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i].Equals(b))
                    Console.Write("{0} ",i+1);
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("元素所在位置是:");
            int[] a = {1,2,3,4,5,2};
            index.A<int>(2,a);
            Console.ReadKey();
        }
    }
}

相關推薦

c#建立靜態其中定義一個方法實現查詢陣列元素功能

泛型中不能直接比較,要用where T :IComparable 而且靜態類中不能傳遞出來結果。。只能在靜態類的內部輸出結果。 1:比較和排序的概念     比較:兩個實體類之間按>,=,<進行比較。     排序:在集合類中,對集合類中的實體進行排序。排序基於

C#實現資料回滾A事件和B事件同時執行其中任何一個事件執行失敗都會返回失敗

  /// <summary> /// 執行資料庫回滾操作,用於sql語句執行失敗後,恢復執行前的資料 /// </summary> /// <param name="TableName">目標表</param> /// <param

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

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

定義方法以及限定

1、泛型類定義的泛型,在整個類中有效。如果被方法使用,那麼泛型類的物件明確要操作的具體型別後,所有要操作的型別就已經固定了。 2、為了讓不同方法可以操作不同型別,而且型別還不確定。那麼可以將泛型定義在方法上。 3、特殊之處: 靜態方法不可以訪問類上定義的泛型。 如果靜態方

抽象 定義31 方法 隱藏方法

         C# 允許把類和函式宣告為abstract。 抽象類不能例項化,抽象類可以包含普通函式和抽象函式,抽象函式就是隻有函式定義沒有函式體。顯然抽象函式本身也是虛擬的Virtual (只有函式定義 沒有函式體實現)     類是一個模板,那麼抽象類就是一個不完整

java 詳解(普通、 萬用字元、 介面陣列方法巢狀)

JDK1.5 令我們期待很久,可是當他釋出的時候卻更換版本號為5.0。這說明Java已經有大幅度的變化。本文將講解JDK5.0支援的新功能-----Java的泛型. 1、Java泛型  其實Java

c++primer定義一個復數

opera 指針 隨著 per call 拷貝構造函數 會銷 局部變量 eal 1 #include<iostream> 2 #include<string> 3 #include<vector> 4 #include<a

定義一個包含私有成員變數和函式的定義一個內部類在內部類函式中訪問外部成員變數並呼叫外部函式。在外部類函式中建立內部類物件呼叫內部類函式

public class Test5 {         //定義包含私有成員變數和函式         private int a = 201320883;         private voi

C#--第四周實驗--任務2--定義一個描述座標點的CPoint利用(預設引數值)建構函式傳遞引數。(控制檯應用)

/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱:定義一個描述座標點的CPoint類,利用建構函式傳遞引數。 * 作 者: 雷恆

java--建立一個帶預設構造方法(即無參構造)的在構造方法中列印一條訊息"Hello Constructor";再為這個新增一個過載構造方法令其接收一個字串引數將其一起打印出來

題目描述:建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,並在這個有參構造方法中把"Hello Constructor"和接收的引數一起打印出來。 //Person類 class Pe

java--建立一個帶預設構造方法(即無參構造)的在構造方法中列印一條訊息"Hello Constructor";再為這個新增一個過載構造方法令其接收一個字串引數將其一起打印出來

題目描述:建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,並在這個有參構造方法中把"Hello Constructor"和接收的引數一起打印出來。 //Perso

Java之建立一個帶預設構造方法(即無參構造)的在構造方法中列印一條訊息"Hello Constructor";再為這個新增一個過載構造方法令其接收一個字串引數。

建立一個帶預設構造方法(即無參構造)的類,在構造方法中列印一條訊息"Hello Constructor";再為這個類新增一個過載構造方法,令其接收一個字串引數,並在這個有參構造方法中把"Hello Constructor"和接收的引數一起打印出來。 效果如下: 附上程

【java學習記錄】7.定義一個介面ArearInterface其中包含一個方法計算面積三角形、矩形、圓形的面積

* 定義一個介面ArearInterface,其中包含一個方法,計算面積 * 定義三個類:三角形、矩形、圓形,分別實現ArearInterface中的方法 * 定義一個主類,將三角形和圓形的面積顯示在螢幕上ArearInterface 介面public interface A

MVC為Html對象建立一個擴展方法使用自己的控件就像使用TextBox一樣方便

public viewpage 方法 per his stat spa .html view 先看一下我想要的結果: 很容易它就是一個單選按鈕組,當我後臺為Html對象(HtmlHelper的一個實例,它被定義在System.Web.Mvc名稱空間下的WebViewPag

的繼承定義一個computer在此基礎上派生出兩個子(繼承與多態綁定)

end 其中 調用 turn .get str 兩個 pac AR 題目如下 定義一個計算機類(Computer),並在它的基礎上派生出兩個子類:臺上機(Desktop)和便攜機類(Notebook),在Computer中定義幾個方法,並在子類Desktop和Noteboo

c#中的自定義方法接口

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

C#反射 字符串轉為實體並做為參數傳入方法中使用

subst type xxd main.c 發現 get director col asm 工作中有這樣一個需求,有N張不同的報表,每張報表對應一個數據源,以前采用SQL統計方式 ,統計數據采用內存方式,首先在內在裏定義了數據源對應實體。統計條件用lamdba表達式式實現,

C++初學】和物件定義與建構函式

一.類和物件定義 class 型別名 { public: 公有成員(外部介面) private: 私有成員(只允許類內函式訪問,有後續操作) protected: 保護成員 二.建構函式 def:給物件進行初始化的函式。 gra: 函式名與類名相同; 無返回值(return); 1.委託

建立表、修改表、刪除表的方法 建立主鍵約束、外來鍵約束、使用者自定義約束的方法 建立查詢表的方法及使用截斷表的方法理解約束在資料庫中的作用

撰寫人——軟工二班——陳喜平 – 實驗內容: – 一、建立表 – 建立圖書館管理系統所涉及的表 – 建立產品銷售系統所涉及的表 – 圖書表book(bid,bname,price,qty) – 書庫表lib(lid,lname,address) – 讀者表reader

C++模板初階(程式設計函式模板模板)

1.泛型程式設計 怎麼實現一個通用的交換函式呢 使用函式過載雖然可以實現,但是有一下幾個不好的地方: 1. 過載的函式僅僅只是型別不同,程式碼的複用率比較低,只要有新型別出現時,就需要增加對應的函式 2. 程式碼的可維護性比較低,一個出錯可能所有的過載均出錯