最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 內(nèi)部類與Lambda表達式用法詳解

 更新時間:2021年10月23日 08:53:29   作者:做哈白日夢  
Lambda表達式是一個匿名函數(shù),Lambda表達式基于數(shù)學(xué)中的λ演算得名,直接對應(yīng)于其中的lambda抽象,是一個匿名函數(shù),即沒有函數(shù)名的函數(shù);內(nèi)部類是將一個類定義在另一個給類里面或者方法里面,這樣的類就被稱為內(nèi)部類

一、內(nèi)部類

1.什么是內(nèi)部類?

1.類作為形參和返回值:

抽象類作為形參和返回值:

  • 通過多態(tài)的形式去傳遞抽象類作為形參的方法,方法的形參與返回值為抽象類名,則需要的是該抽象類的子類對象。
  • 類名作為形參與返回值:方法的形參與返回值為類名時,則需要的是該類的對象。
  • 接口名作為形參與返回值:方法的形參與返回值為接口名時,則需要的是該接口的實現(xiàn)類對象。

內(nèi)部類的概述:

  • 內(nèi)部類里面訪問特點是在外面的類需要訪問里面類的時,是需要創(chuàng)建對象才能調(diào)用,里面的類則可以直接使用外面類的成員。

在這里插入圖片描述

2.內(nèi)部類的幾種形式

1.成員內(nèi)部類

在這里插入圖片描述

注意事項:創(chuàng)建內(nèi)部類的對象時,除了私有的內(nèi)部類,定義為私有的類時,是需要外部類創(chuàng)建對象將其調(diào)用內(nèi)部類的成員與方法,再在測試類里去創(chuàng)建外部類的對象,調(diào)用其方法。

2.局部內(nèi)部類

局部內(nèi)部類是需要在方法中去寫的,主要格式跟成員內(nèi)部類差不多。

匿名內(nèi)部類(是局部內(nèi)部類的一種格式,也需要在方法里面寫)

在這里插入圖片描述

當需要進行接口和抽象類的內(nèi)部類時,則可以通過匿名內(nèi)部類的方式,注意的是匿名內(nèi)部類是一個相當于接口或抽象類的實現(xiàn)繼承類的對象,所以可以直接通過賦值給一個接口,抽象名,通過這個直接調(diào)用內(nèi)部類里面的成員。
當在開發(fā)中的使用時:

在這里插入圖片描述

這里首先創(chuàng)建了一個對象,創(chuàng)建對象后調(diào)用其中的方法,返回值是一個接口,所以需要創(chuàng)建一個實現(xiàn)接口類去重寫接口方法,并調(diào)用。但匿名內(nèi)部類則減少了很多步驟,直接在測試類中通過匿名內(nèi)部類的方式,對接口里面的方法進行重寫,到達簡便。

二、Lambda表達式(強調(diào)做什么,而不是以什么形式去做)

1.Lambda表達式的格式要求:

在這里插入圖片描述

注意事項:Lambda表達式的前提條件:

  • 有一個接口
  • 接口中有且只有一個抽象方法。

例子:

在這里插入圖片描述

說明這里在下面寫了一個方法,在調(diào)用方法時候是將返回Lambda的表達式中進行運行最后又返回回去,執(zhí)行下一步操作。

2.Lambda與匿名內(nèi)部類的區(qū)別

1.省略模式

參數(shù)可以省略(多個參數(shù)時需都省略),如果參數(shù)只有一個時候,也可以省略小括號,同時如果代碼塊語句只有一條,也可以省略大括號和分號(注意事項:如果有return時,return也要省略)。

在這里插入圖片描述

注意事項:

在這里插入圖片描述

2.Lambda與匿名內(nèi)部類的區(qū)別:

在這里插入圖片描述

三、方法引用

1.方法的概述:

在方法引用其實是Lambda的孿生兄弟,通過方法引用的形式進行,方法引用符為"::",在通過方法名(System.out::println)的形式,其實就是寫好的Lambda表達式中參數(shù)再次賦值并調(diào)用的。所以方法引用主要是運用到已寫好的Lambda表達式的二次運用。

2.常見的方法引用方式:

在這里插入圖片描述

3.方法引用的具體方式:

  • 引用對象的實例方法

在這里插入圖片描述

說明:在引用對象的實例方法的情況是在Lambda表達式與其中類里面所執(zhí)行的操作相同所以可以運用替代,在替代時,它的形式參數(shù)全部傳遞給該方法作為參數(shù),格式為"對象名::方法名"。

  • 引用類的實例方法

在這里插入圖片描述

說明:在引用類的實例方法中時,通過”類名::方法名“的格式要求進行

  • 引用構(gòu)造器(引用構(gòu)造方法)

在這里插入圖片描述

說明:在引用構(gòu)造方法時候,是通過“類名::new”的格式進行,當Lambda表達式被構(gòu)造器替代的時候,它的形式參數(shù)全部傳遞給構(gòu)造器作為參數(shù)。同時所傳遞的參數(shù)通過類名進入到具有兩個參數(shù)的構(gòu)造方法中去。

  • 引用類方法(引用類的靜態(tài)方法)

在這里插入圖片描述

說明:當需要引用類方法時,有”類名::靜態(tài)方法名“的格式進行修飾同時,Lambda表達式被類方法替代時候,他的形式參數(shù)全部傳遞給靜態(tài)方法作為參數(shù)。

到此這篇關(guān)于C# 內(nèi)部類與Lambda表達式用法詳解的文章就介紹到這了,更多相關(guān)C# Lambda表達式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c# 所有類型都從Object類型派生

    c# 所有類型都從Object類型派生

    所有的類型最終從object派生,每一個類型都有一組最基本的方法
    2012-10-10
  • C#實現(xiàn)的文件批量重命名功能示例

    C#實現(xiàn)的文件批量重命名功能示例

    這篇文章主要介紹了C#實現(xiàn)的文件批量重命名功能,結(jié)合具體實例形式分析了C#針對文件的遍歷、屬性修改相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07
  • Unity實現(xiàn)畫線條功能

    Unity實現(xiàn)畫線條功能

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)畫線條功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • DevExpress實現(xiàn)GridControl單元格編輯驗證的方法

    DevExpress實現(xiàn)GridControl單元格編輯驗證的方法

    這篇文章主要介紹了DevExpress實現(xiàn)GridControl單元格編輯驗證的方法,很實用的功能,需要的朋友可以參考下
    2014-08-08
  • 同步調(diào)用和異步調(diào)用WebService

    同步調(diào)用和異步調(diào)用WebService

    本文給大家介紹webservice同步調(diào)用和異步調(diào)用,同步調(diào)用就是一個同步操作會阻塞整個當前的進程,直到這個操作完成才能執(zhí)行下一段代碼,異步調(diào)用不會阻塞啟動操作的調(diào)用線程,調(diào)用程序必須通過輪流檢測,或者等待完成信號來發(fā)現(xiàn)調(diào)用的完成。小伙伴們跟著小編一起學(xué)習(xí)
    2015-09-09
  • C# Nullable的使用小結(jié)

    C# Nullable的使用小結(jié)

    本文主要介紹了C# Nullable的使用小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C#類的成員之Field字段的使用

    C#類的成員之Field字段的使用

    本文主要介紹了C#類的成員之Field字段的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C#中的CheckBox控件詳解與應(yīng)用示例

    C#中的CheckBox控件詳解與應(yīng)用示例

    在WPF(Windows Presentation Foundation)應(yīng)用中,C#中的CheckBox控件是一種常用的用戶界面元素,允許用戶從多個選項中選擇一個或多個選項,本文將詳細介紹CheckBox控件的功能、使用方法以及在應(yīng)用程序中的具體應(yīng)用示例,需要的朋友可以參考下
    2024-04-04
  • C#獲取Windows10屏幕縮放比例的操作方法

    C#獲取Windows10屏幕縮放比例的操作方法

    這篇文章主要介紹了C#獲取Windows10屏幕的縮放比例,接下來介紹如何獲取Display?resolution中顯示的實際分辨率,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • C# NullReferenceException解決案例講解

    C# NullReferenceException解決案例講解

    這篇文章主要介紹了C# NullReferenceException解決案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

迁西县| 扶绥县| 雅安市| 斗六市| 克山县| 彩票| 青岛市| 古田县| 山西省| 师宗县| 绍兴市| 咸丰县| 蓝田县| 黑河市| 临夏市| 克什克腾旗| 昆明市| 永善县| 瓦房店市| 瑞金市| 巫山县| 龙川县| 西平县| 南昌县| 万荣县| 塔城市| 福海县| 广安市| 同江市| 武山县| 客服| 易门县| 修水县| 连山| 英超| 汨罗市| 南投县| 年辖:市辖区| 罗源县| 呼图壁县| 阿瓦提县|