1. 程式人生 > >c#面試寶典一:

c#面試寶典一:

釋放 cat protected 文件 question 整數 style .cn 特殊字符

技術分享圖片

A題:

http://blog.sina.com.cn/s/blog_939f768f0102wix6.html

在using ()中新建的對象,比如你這裏的conn,會在{}結束的時候自動關閉和釋放,不需要你手動進行。

這樣你不用每次都要去調用conn.Close(),或者conn.Dispose()了,這樣能減少人為引入Bug的機會。

using System;
不是必須的,是引入命名空間。例如在System裏的Console下有函數WriteLine:
在不加 using System時候必須輸入:System.Console.WriteLine("Please enter your name:");

但是在開頭加了的話 就直接 Console.WriteLine("Please enter your name:"); 就可以了。註意省略了 System.
所以它不是必須的,但是如果許多地方都要用System空間裏的東西,最好加上。

B題:

https://www.cnblogs.com/bobositlife/articles/what-is-orm-why-use-orm.html

ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。

優/缺點

優點

與傳統的數據庫訪問技術相比,ORM有以下優點:

  • 開發效率更高
  • 數據訪問更抽象、輕便
  • 支持面向對象封裝

缺點

  • 降低程序的執行效率
  • 思維固定化

C題:@表示強制不轉譯

這個@符號有幾個作用,1.假設str是一個路徑名稱的話,在我們的路徑中通常都有“\”符號,而這個符號又是一個轉義字符,如果不加@符號的話,那麽你不得不把路徑中的“\”進行處理,但是這樣造成工作量大,所以使用這個@符號就不需要轉義路徑中的特殊字符了。意思是""之間的反斜杠、正斜杠什麽的不做特殊處理,只表示一個你看到的字符串。

D題:

https://zhidao.baidu.com/question/374859562.html

委托是對函數的封裝,可以當作給方法的特征指定一個名稱。而事件則是委托的一種特殊形式,當發生有意義的事情時,事件對象處理通知過程。


最常見的例子就是Tom貓叫“喵,我是TOM”,有兩只老鼠Jerry和Jack就說“貓來了,快跑!"
你分析一下,這兩個類是如何執行?

在Main函數中執行,當Cat的Shout觸發時,Mouse就執行Run。那麽如何讓Shout觸發?顯然老貓不認識老鼠,也不會主動通知它們。

委托是一種引用方法的類型。一旦為委托分配了方法,委托將與該方法具有完全相同的行為。
委托通過delegate來聲明。而事件是說在發生其他類或對象關註的事情時,類或對象可通過事件通知它們。事件對象用event聲明。

E題:

PO持久化對象中用integer而不要使用int

/*
* int是java提供的8種原始數據類型之一。Java為每個原始類型提供了封裝類,Integer是java為int提供的封裝類。int的默認值為0,
* 而Integer的默認值為null
* ,即Integer可以區分出未賦值和值為0的區別,int則無法表達出未賦值的情況,例如,要想表達出沒有參加考試和考試成績為0的區別
* ,則只能使用Integer
* 。在JSP開發中,Integer的默認為null,所以用el表達式在文本框中顯示時,值為空白字符串,而int默認的默認值為0,所以用el表達式在文本框中顯示時
* ,結果為0,所以,int不適合作為web層的表單數據的類型。
* 在Hibernate中,如果將OID定義為Integer類型,那麽Hibernate就可以根據其值是否為null而判斷一個對象是否是臨時的
* ,如果將OID定義為了int類型,還需要在hbm映射文件中設置其unsaved-value屬性為0。
* 另外,Integer提供了多個與整數相關的操作方法,例如,將一個字符串轉換成整數,Integer中還定義了表示整數的最大值和最小值的常量。

F題:

接口的方法只能聲明不能定義;類可以(所以接口裏面的方法不能為abstrat或者virtual;類可以)。類:接口---實現接口;類:類---繼承類;接口:接口---繼承接口。一個類可以實現多個接口;一個類只能繼承一個類。

都是引用類型.
接口實質上是功能說明書,說明有什麽屬性和功能(屬性和方法)
接口理論上是繼承者的父類,因此它可以作為實現類的引用,來封裝類的復雜實現。
用接口引用 指向 new 的實例,則該引用只呈現接口中約定的屬性和方法(封裝)
接口可以理解為是純抽象的類。它與類的關系好比自動洗衣機的說明書 和自動洗衣機的關系。
說明書裏描述了自動加水、自動洗衣、自動脫水等功能方法,也有環保、節能、省水等特(屬性)。
但是你不能用這個說明書來洗衣服吧?

G題:

private是完全私有的,只有在類自己裏面可以調用,在類的外部和子類都不能調用,子類也不能繼承父類的private的屬性和方法。

protected雖然可以被外界看到,但外界卻不能調用,只有自己及自己的子類可以調用(protected的屬性和方法都可以被子類所繼承和調用)。

private和protected的共同點:外部都不可以訪問。

private和protected的不同點:在同一類中可視為一樣,但在繼承中就不同了,private在派生類中不可以被訪問,而protected可以。

public對任何類和成員都完全公開,無限制訪問。

internal同一應用程序集內部(在VS.NET中的一個項目中,這裏的項目是指單獨的項目,而不是整個解決方案)可以訪問。

public和internal的區別:public的成員可以跨程序集,但internal不能,同一程序集中具有相同的效果。


protected internal:只能在同一應用程序集內本類、派生類訪問。

c#面試寶典一: