国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#中數(shù)組參數(shù)=out參數(shù)?

這篇具有很好參考價值的文章主要介紹了C#中數(shù)組參數(shù)=out參數(shù)?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

- 結(jié)論

先上結(jié)論,答案是yes,C#中數(shù)組確實具有out參數(shù)的特性。

- 疑問

最近開發(fā)一個上位機(jī)的功能,有段代碼看得我一直很迷糊,我的認(rèn)識,函數(shù)的執(zhí)行結(jié)果,要么在函數(shù)中通過return返回,要么通過out或ref參數(shù)返回。這段代碼中明顯沒有通過return獲取返回值,輸入?yún)?shù)倒是看起來很像out返回值,但是我反復(fù)確認(rèn)了N遍,定義就是沒有out或ref類型。這就很是疑惑了,只好先放一邊,先把它當(dāng)做out參數(shù)取返回值理解去完成開發(fā),今天有空終于把這個疑問摸清楚了。

- 驗證

各種百度,網(wǎng)上并沒有答案。于是參照原來的代碼寫了一段Console程序,發(fā)現(xiàn)輸入?yún)?shù)(字節(jié)數(shù)組)還真是在函數(shù)中更改后返回最新值了。此時原先的不明就里已經(jīng)確定為就是【字節(jié)數(shù)組】的原因了,最初懷疑是Byte類型的原因,在程序中驗證后發(fā)現(xiàn)并不是,然后用非字節(jié)類型的數(shù)組驗證了下,仍然能在實參中取到函數(shù)更新后的值,確定為就是數(shù)組的原因。此時已經(jīng)有點懷疑引用類型值類型的原因了,但是不對啊,平時引用類型string用的這么多,印象中并不會返回值啊,通過程序驗證,也確定string參數(shù)沒有out參數(shù)的特性,這就不得其解了。。直到搜到一篇文章,說string類型是一種特殊的引用類型,其實此處就等于是值傳遞,所有的謎團(tuán)才清晰了。原因就在于參數(shù)分傳值與傳址兩種,數(shù)組為引用類型,是按地址傳遞的,所以具備out參數(shù)的特性。
點擊查看代碼
class Pr
{
    private static byte[] m_byBuff = new byte[2048];
    static void Main(string[] args)
    {   

        byte[] barr_read = new byte[1024];
        int int_read = 0;
        byte byte_read=0;
        int[] iarr_read = new int[10];
        string str_read = "0";

 
        bool r = DataProcess(barr_read);
        bool r1 = DataProcess(int_read);
        bool r2 = DataProcess(byte_read);
        bool r3 = DataProcess(str_read);
        //向控制臺輸出
        System.Console.WriteLine("數(shù)組類型實參傳參后值(傳參前為0,傳參函數(shù)中有賦值):");
        System.Console.WriteLine("arr[0]:{0}",barr_read[0].ToString());
        System.Console.WriteLine("arr[1]:{0}", barr_read[1].ToString());
        System.Console.WriteLine("arr[2]:{0}", barr_read[2].ToString());
        System.Console.WriteLine("arr[3]:{0}", barr_read[3].ToString());

        System.Console.WriteLine("int類型實參傳參后值(傳參前為0,傳參函數(shù)中有賦值):");
        System.Console.WriteLine(int_read.ToString());

        System.Console.WriteLine("byte類型實參傳參后值(傳參前為0,傳參函數(shù)中有賦值):");
        System.Console.WriteLine(byte_read.ToString());

        System.Console.WriteLine("string類型實參傳參后值(傳參前為‘0’,傳參函數(shù)中有賦值):");
        System.Console.WriteLine(str_read);

    }
    //Main是static的,因此aa也要申明為static,否則無法訪問
    private static bool DataProcess(byte[] outbuff)
    {
        outbuff[0] = (byte)1;
        outbuff[1] = (byte)2;
        outbuff[2] = (byte)3;
        outbuff[3] = (byte)4;
        return true;

    }

    private static bool DataProcess(int[] outbuff)
    {
        outbuff[0] = 11;
        outbuff[1] = 12;
        outbuff[2] = 13;
        outbuff[3] = 14;
        return true;

    }

    private static bool DataProcess(int outbuff)
    {
        outbuff=10;
        return true;

    }
    private static bool DataProcess(byte outbuff)
    {
        outbuff = 20;
        return true;

    }



    private static bool DataProcess(string outbuff)
    {
        outbuff = "30";;
        return true;

    }
}

C#中數(shù)組參數(shù)=out參數(shù)?

- 參考

https://blog.csdn.net/weixin_44806070/article/details/107882525
https://www.cnblogs.com/mdnx/archive/2012/09/04/2671060.html文章來源地址http://www.zghlxwxcb.cn/news/detail-537532.html

到了這里,關(guān)于C#中數(shù)組參數(shù)=out參數(shù)?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • js合并數(shù)組對象(將數(shù)組中具有相同屬性對象合并到一起,組成一個新的數(shù)組)

    js合并數(shù)組對象(將數(shù)組中具有相同屬性對象合并到一起,組成一個新的數(shù)組)

    1.原數(shù)組: 2.合并后數(shù)組: 3.實現(xiàn)方法: 4.測試: 1.原數(shù)組: 2.合并后數(shù)組: 3.實現(xiàn)方法一: 測試: 4.實現(xiàn)方法二: 測試:

    2024年02月08日
    瀏覽(30)
  • 前端基礎(chǔ)面試題:如何判斷對象是否具有某屬性?遍歷數(shù)組的方法有哪些?

    前端基礎(chǔ)面試題:如何判斷對象是否具有某屬性?遍歷數(shù)組的方法有哪些?

    一、如何判斷對象具有某屬性? 如: let obj={name:\\\'zhangsan\\\',age:21} 有以下方法 ( property 為屬性名的變量,實際上是key,鍵名): 1. property in obj 效果如圖: in 運(yùn)算符 2. Reflect.has(obj, property) 效果如圖: 關(guān)于 Reflect: ① 它是JS的一個內(nèi)置對象,無構(gòu)造函數(shù),可以用它遍歷對象的key,如

    2023年04月08日
    瀏覽(98)
  • C#中的`out`關(guān)鍵字

    C# 中的 out 是一個用來在方法調(diào)用時傳遞數(shù)據(jù)的修飾符。它允許你在方法內(nèi)部創(chuàng)建一個臨時的變量,用于接收傳遞進(jìn)來的參數(shù)值,并在方法執(zhí)行完畢后,將該變量的值返回給調(diào)用方法的對象。out 主要用于那些需要知道方法執(zhí)行結(jié)果的參數(shù)上。 在 C# 中,out

    2024年02月22日
    瀏覽(95)
  • C#中out關(guān)鍵字

    在C#中可以使用out,指定所給的參數(shù)是一個輸出參數(shù)。out的使用方式與ref相同,都是在函數(shù)定義和函數(shù)調(diào)用中用作參數(shù)的修飾符。 運(yùn)行結(jié)果,如下圖所示: 實際上,out的執(zhí)行方式與引用參數(shù)幾乎完全一樣,因為在函數(shù)執(zhí)行完畢后,該參數(shù)的值將返回給函數(shù)

    2024年02月05日
    瀏覽(21)
  • LLMs之Morphic:Morphic(一款具有生成式用戶界面的人工智能答案引擎)的簡介、安裝、使用方法之詳細(xì)攻略

    LLMs之Morphic:Morphic(一款具有生成式用戶界面的人工智能答案引擎)的簡介、安裝、使用方法之詳細(xì)攻略 目錄 Morphic的簡介 1、技術(shù)棧 Morphic的安裝和使用方法 1、克隆倉庫 2、安裝依賴 3、填寫密鑰 4、本地運(yùn)行應(yīng)用 部署 2024年4月初發(fā)布,Morphic是 一款具有生成式用戶界面的人工

    2024年04月29日
    瀏覽(29)
  • C#的ref和out使用

    C#的ref和out使用

    ref和out是C#中用于參數(shù)傳遞的,它們都允許在方法內(nèi)部修改參數(shù)的值,區(qū)別如下: 1、ref:使用ref聲明的參數(shù),在方法調(diào)用前必須被初始化,并且可以被視為已經(jīng)賦予了一個初始值。在方法內(nèi)部對ref參數(shù)的修改會影響到方法外部傳入的實參,也就是說,我在

    2024年02月16日
    瀏覽(16)
  • C#out、ref和params參數(shù)

    out參數(shù)用于傳遞一個方法的輸出值。它表示在方法內(nèi)部,該參數(shù)沒有被初始化,而是由方法賦值。方法結(jié)束后,該參數(shù)會被賦予一個值。 在使用out參數(shù)時,調(diào)用方法時必須指定該參數(shù),并且不需先進(jìn)行初始化。 out參數(shù)可以在方法內(nèi)部定義,并且可以定義多個。 ref參數(shù)用于在

    2024年02月13日
    瀏覽(14)
  • LLaMA 簡介:一個具有 650 億參數(shù)的基礎(chǔ)大型語言模型 官網(wǎng)介紹

    2023 年 2 月 24 日 更新: 我們剛剛推出了Llama 2?- 有關(guān)最新信息的更多信息,請參閱我們關(guān)于 Llama 2 的博客文章。 作為 Meta 致力于開放科學(xué)的一部分,今天我們公開發(fā)布 LLaMA(大型語言模型 Meta AI),這是一種最先進(jìn)的基礎(chǔ)大型語言模型,旨在幫助研究人員推進(jìn)人工智能這一子

    2024年02月10日
    瀏覽(56)
  • c#構(gòu)建具有用戶認(rèn)證與管理的socks5代理服務(wù)端

    c#構(gòu)建具有用戶認(rèn)證與管理的socks5代理服務(wù)端

    Socks 協(xié)議是一種代理 (Proxy) 協(xié)議, 例如我們所熟知的 Shdowsocks 便是 Socks 協(xié)議的一個典型應(yīng)用程序, Socks 協(xié)議有多個版本, 目前最新的版本為 5, 其協(xié)議標(biāo)準(zhǔn)文檔為 RFC 1928。 我們一起來使用.net 7 構(gòu)建一個支持用戶管理的高性能socks5代理服務(wù)端 目錄 協(xié)議流程 1 client - server 客戶端與

    2024年02月05日
    瀏覽(28)
  • c# WPF項目XAML 設(shè)計界面報錯: 已添加具有相同鍵的項目

    現(xiàn)象如下: VS2017打開?WPF項目,XAML 設(shè)計界面不能顯示,報錯如下: System.ArgumentException 已添加了具有相同鍵的項。 在 System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) 在 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) 在 System.Collections.Generic.Dictionary`2.Ad

    2024年01月18日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包