.Net 面試題整理(一)

来源:https://www.cnblogs.com/tenghao510/archive/2020/01/13/12132292.html
-Advertisement-
Play Games

1、C# 的三大特性? 封裝、繼承、多態 2、簡述 private、 protected、 public、 internal 修飾符的訪問許可權。 private : 私有成員, 在類的內部才可以訪問。 protected : 保護成員,該類內部和繼承類中可以訪問。 public : 公共成員,完全公 ...


1、C# 的三大特性?

封裝、繼承、多態

2、簡述 private、 protected、 public、 internal 修飾符的訪問許可權。

private : 私有成員, 在類的內部才可以訪問。

protected : 保護成員,該類內部和繼承類中可以訪問。

public : 公共成員,完全公開,沒有訪問限制。 

internal: 當前程式集內可以訪問。

3、介面和類的區別

介面:不能實例化,方法也沒有具體的實現,被繼承時,繼承類必須實現介面的所有方法。

類:可以被實例化,被繼承時,繼承類也不需要重新實現被繼承類中的方法。但是如果被繼承類的方法中有abstract修飾的,繼承類則需要實現這個方法。

4、在對象比較中,對象一致和對象相等分別是指什麼?

對象一致指的是引用相同。對象相等指的是內容相等。

5、ref修飾參數和out修飾參數的區別

ref、out都可以從函數內部傳出值,區別是,ref修飾的參數必須先初始化、而out不用

6、C#中String和string有什麼區別?

  • string是C#中的類,String是Framework的類,
  • 如果寫的是string,在編譯的時候編譯器會把他轉換為String。所以直接使用String會讓編譯器少做工作,可以提高一下性能。
  • 在C#中建議使用string,比較符合規範 。
  • 在C#中string是關鍵字,而String不是。

7、 const和readonly兩者區別? 

const:

  • 編譯時常量
  • 本身就是靜態變數
  • 只能定義基本類型,如int,string等等
  • 在聲明的時候必須初始化,且不能修改

readonly:

  • 運行時常量
  • 不是靜態變數,如果需要需加上“static”關鍵字
  • 可以定義一切類型
  • 可以延遲到構造函數初始化

8、public static const int A = 1; 這段代碼有錯誤嗎

錯誤:const 不能被修飾為 static
因為定義為常量(const)後就是靜態的(static)

9、try {}里有一個return語句,那麼緊跟在這個try後的finally {}里的code會不會被執行,什麼時候被執行,在return前還是後?

會執行,在return前執行。

10、string str = null 與 string str = "" 的區別

string str = null 是不給他分配記憶體空間,而 string str = "" 給它分配長度為空字元串的記憶體空間。
string str = null 沒有 string 對象,string str = "" 有一個字元串對象。

11、什麼叫做泛型?

泛型就是參數化類型

泛型的作用是減少重覆代碼

12、什麼是反射?

動態獲取程式集信息、對象信息。

13、裝箱和拆箱

裝箱是將值類型轉化為引用類型的過程;

拆箱是將引用類型轉化為值類型的過程

14、2+5+”8” 得到的結果是什麼

從左向右運算,int + string 是 string,所以是 “78”

擴展:”8”+2+5 是”825”,而 “8”+(2+5)是 “87”

15、a=10,b=15,請在不使用第三方變數的情況下,把a、b的值互換

            int a = 10;
            int b = 15;
            a += b;
            b = a - b;
            a -= b;
            Console.WriteLine("a={0}\r\nb={1}", a, b);

16、現有 1~10 共十個自然數,已隨機放入一個有 8 個元素的數組 nums[8]

int[] numbers= { 3, 9, 8, 2, 4, 6, 10, 7 };

要求寫出一個儘量簡單的方案,找出沒有被放入數組的那 2 個數,並列印這 2 個數。

            int[] numbers = { 3, 9, 5, 2, 1, 6, 10, 7 };
            for (int i = 1; i <= 10; i++)
            {
                //通過使用預設的相等比較器確定序列是否包含指定的元素。
                if (!numbers.Contains(i))
                {
                    Console.WriteLine(i);
                }
            }

17、請編程實現一個冒泡排序演算法?

            int[] array = { 1, 3, 5, 7, 13, 2, 4, 6, 8, 10 };
            for (int i = 0; i < array.Length; i++)
            {
                for (int j = 0; j < array.Length - 1 - i; j++)
                {
                    if (array[j] > array[j + 1])
                    {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                }
            }
            Console.WriteLine("冒泡排序");
            foreach (var t in array)
            {
                Console.WriteLine($"{t}");
            }

18、產生一個int數組,長度為100,並向其中隨機插入1-100,並且不能重覆?

            var list = new List<int>();
            var random = new Random();
            while (true)
            {
                var temp2 = random.Next(1, 101);
                if (list.Count == 100)
                {
                    break;
                }
                if (!list.Contains(temp2))
                {
                    list.Add(temp2);
                }
            }
            foreach (var t in list)
            {
                Console.Write(t + ",");
            } 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 說到驗證,那就需要做三件事: 定義驗證規則 按驗證規則進行檢查 報告驗證的錯誤。在把錯誤報告給API消費者的時候,報告里並不包含到底是服務端還是API消費者引起的錯誤,這是狀態碼的工作。而通常響應的Body裡面會包含一組驗證錯誤信息,API消費者可以把這些信息展示給API消費者的用戶。 定義驗證規則 ...
  • var url = data.url, params = data.params, try_times = data.try_times , async = data.sync == 'false' ? false : true; $.ajax({ url: url, type: "POST", t ...
  • 伴隨著dotnet core的不斷迭代,我們在享受.net性能上的提升之外,還收穫了許許多多新出現的API。不知您有沒有發現,有這樣一個類型在開始逐漸出現在我們的視野中 ———— ValueTask ...
  • 問題描述 最近在使用ef core連接oracle的發現Find、FirstOrDefault、Skip Task分頁等等方法執行失敗。使用的是docker安裝的oracle11,錯誤如下圖: 解決辦法 使用builder.UseOracleSQLCompatibility("11")方法來指定or ...
  • 一、什麼是Lock? Lock——字面上理解就是鎖上;鎖住;把……鎖起來的意思; 為什麼要鎖?要鎖乾什麼?——回到現實中可想象到,這個衛生間我要上,其他人不要進來!(所以我要鎖住門);又或者土味情話所言,我要把你鎖在我的心裡,然後在裡面加個無限迴圈語句,不給你出來,也不被別人所得,你只能是我的,哈哈 ...
  • 微信公眾號: "Dotnet9" ,網站: "Dotnet9" ,問題或建議: "請網站留言" , 如果對您有所幫助: "歡迎贊賞" 。 C WPF從RIOT API獲取數據(RIOT代表作品《英雄聯盟》) 閱讀導航 1. 本文背景 2. 代碼實現 3. 本文參考 1. 本文背景 RIOT(拳頭)是 ...
  • 本文介紹通過調用Spire.Cloud.Word.SDK提供的ConvertApi介面將Word轉換為PDF、XPS、Epub、RTF以及將Docx轉為Doc格式等。調用介面方法及步驟參考以下步驟: 步驟一:dll文件獲取及導入。通過官網本地下載SDK文件包。(須在e-iceblue中國官網線上編輯 ...
  • 2017年12月份,我離開北京,回到了武漢,開始在現在這家公司擔任架構師工作。經過2年的時間,逐步完成以.net core+k8s為核心的技術架構。文末有彩蛋。 以下整理這兩年的主要時間節點: 2018年1月到2018年3月 基於.net core的底層框架的封裝,封裝了數據訪問,緩存,消息隊列,加 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...