protected : 保護成員,該類內部和從該類派生的類中可以訪問。
public : 公共成員,完全公開,沒有訪問限制。
internal: 在同一命名空間內可以訪問。 (很少用)
1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session變量
3.使用Server.Transfer
4.使用Application
5.使用Cache
6使用HttpContext的Item屬性
7.使用文件
8.使用數據庫
9.使用Cookie
3.一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少,用遞歸算法實現
答
public class MainClass {
public static void Main() { Console.WriteLine(Foo(30)); }
public static int Foo(int i) {
if (i <= 0) return 0;
else if(i > 0 && i <= 2) return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
4.C#中的委托是什么?事件是不是一種委托?
答
委托是將一種方法作為參數代入到另一種方法。
是,事件是一種特殊的委托。 //比如:onclick事件中的參數就是一種方法。
5.實現多態的過程中 overload 重載 與override 重寫的區別
答
override 重寫與 overload 重載的區別。重載是方法的名稱相同。參數或參數類型不同,進行多次重載以適應不同的需要
Override 是進行基類中函數的重寫。實現多態。
6.請編程實現一個冒泡排序算法?
答
int[] arrsirt = new int[] {}
public static Sort(int[] arr)
{
for(int i=0;i<arr.Length-1;i++)
{
for(int j=0;j<arr.Length-1-i;j++)
{
if(arr[j]<arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
7.描述一下C#中索引器的實現過程,是否只能根據數字進行索引
答
C#通過提供索引器,可以象處理數組一樣處理對象。特別是屬性,每一個元素都以一個get或set方法暴露。索引器不單能索引數字(數組下標),還能索引一些HASHMAP的字符串,所以,通常來說,C#中類的索引器通常只有一個,就是THIS,但也可以有無數個,只要你的參數列表不同就可以了索引器和返回值無關, 索引器最大的好處是使代碼看上去更自然,更符合實際的思考模式.
),並為其提供了簡單的 get 和 set 訪問器 方法(作為分配和檢索值的方法)。 Program 類為存儲字符串創建了此類的一個實例。
{
private T[] arr = new T[100];
public T this[int i] //注意,定義索引器。this 關鍵字用於定義索引器。
{
get
{
return arr[i]; //訪問器采用參數
}
set
{
arr[i] = value; //訪問器采用參數
}
}
}
// This class shows how client code uses the indexer
class Program
{
static void Main(string[] args)
{
SampleCollection<string> stringCollection = new SampleCollection<string>();
stringCollection[0] = "Hello, World"; //這里 使用索引器進行引用
System.Console.WriteLine(stringCollection[0]);
}
}
- 索引器使得對象可按照與數組相似的方法進行索引。
- get 訪問器返回值。set 訪問器分配值。
- this 關鍵字用於定義索引器。
- value 關鍵字用於定義由 set 索引器分配的值。
- 索引器不必根據整數值進行索引,由您決定如何定義特定的查找機制。
- 索引器可被重載。
- 索引器可以有多個形參,例如當訪問二維數組時。
8.用.net做B/S結構的系統,您是用幾層結構來開發,每一層之間的關系以及為什么要這樣分層?
答
使用MVC模式分層
一般為3層
數據訪問層,業務層,表示層。
數據訪問層對數據庫進行增刪查改。
業務層一般分為二層,業務表觀層實現與表示層的溝通,業務規則層實現用戶密碼的安全等。
表示層為了與用戶交互例如用戶添加表單。
9.用.net做B/S結構的系統,您是用幾層結構來開發,每一層之間的關系以及為什么要這樣分層?
優點: 分工明確,條理清晰,易於調試,而且具有可擴展性。
缺點: 增加成本。
10.在下面的例子里
using System;
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B(){ y=-1; }
public override void PrintFields()
{ Console.WriteLine("x={0},y={1}",x,y); }
}
當使用new B()創建B的實例時,產生什么輸出?
答:
X=1,Y=0;
11.什么是裝箱和拆箱?
答
int i=0;
Syste.Object obj=i;
這個過程就是裝箱!就是將 i 裝箱!
比如:
int i=0;
System.Object obj=i;
int j=(int)obj;
這個過程前2句是將 i 裝箱,后一句是將 obj 拆箱!
托管代碼是運行.NET 公共語言運行時CLR的代碼
unsafe:非托管代碼。不經過CLR運行。程序員自行分配和釋放內存空間
13.ADO.net中常用的對象有哪些?分別描述一下。
答
DataSet:數據集。
DataCommand:執行語句命令。
DataAdapter:數據的集合,用語填充。
DataReader:數據只讀器
Connection 數據庫連接對像
Command 數據庫命令
14.什么是Code-Behind技術?
答:代碼后置。
15.在.net中,配件的意思是?
答:程序集。(中間語言,源數據,資源,裝配清單)
16.常用的調用WebService的方法有哪些?
答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜單選項
17.在C#中,string str = null 與 string str = “” 請盡量使用文字或圖象說明其中的區別。
答:string str = null 是不給他分配內存空間,而string str = "" 給它分配長度為空字符串的內存空間。
18.請詳述在C#中類(class)與結構(struct)的異同?
答:class可以被實例化,屬於引用類型,class可以實現接口和單繼承其他類,還可以作為基類型,是分配在內存的堆上的
struct屬於值類型,不能作為基類型,但是可以實現接口,是分配在內存的棧上的.
19.SQLSERVER服務器中,給定表 table1 中有兩個字段 ID、LastUpdateDate,ID表示更新的事務號, LastUpdateDate表示更新時的服務器時間,請使用一句SQL語句獲得最后更新的事務號
答
Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)
20.寫出一條Sql語句:取出表A中第31到第40記錄(SQLServer,以自動增長的ID作為主鍵,注意:ID可能不是連續的。
答
解1: select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
21.GC是什么? 為什么要有GC?
答
GC是垃圾收集器。程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
22.String s = new String("xyz");創建了幾個String Object?
答
兩個對象,一個是“xyx”,一個是指向“xyx”的引用對象s。
23.abstract class和interface有什么區別?
答
聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行為。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現了該接口的類的任何對象上調用接口的方法。由於有抽象類,它允許使用接口名作為引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。
abstract 修飾詞可用於類別、方法、屬性、索引子 (Indexer) 和事件。在類別宣告里使用 abstract
飾詞,表示該類別只是當做其它類別的基底類別而已。成員如果標記為抽象,或是包含在抽象類(Abstract Class) 內,則必須由衍生自此抽象類別的類別實作這個成員。
在靜態屬性上使用 abstract 修飾詞是錯誤的。
在抽象方法宣告中使用 static 或 virtual 修飾詞是錯誤的。
接口只包含方法、委派或事件的簽章。方法的實作 (Implementation) 是在實作接口的類別中完成,
24.try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執行,什么時候被執行,在return前還是后?
答
會執行,在return前執行。
25.Set里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?
答
Set里的元素是不能重復的,那么用iterator()方法來區分重復與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,返回真值。
26.談談final, finally, finalize的區別。
答
final—修飾符(關鍵字)如果一個類被聲明為final,意味着它不能再派生出新的子類,不能作為父類被繼承。因此 一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中 不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為 final的方法也同樣只能使用,不能重載
finally—再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會 執行,然后控制就會進入 finally 塊(如果有的話)。
finalize—方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理 工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的 ,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
27.如何處理幾十萬條並發數據?
答
用存儲過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法並發的時候是不會有重復主鍵的..取得最大標識要有一個存儲過程來獲取.
28.進程和線程的區別?
答
進程是系統進行資源分配和調度的單位;線程是CPU調度和分派的單位,一個進程可以有多個線程,這些線程共享這個進程的資源。
29.堆和棧的區別?
答
棧:由編譯器自動分配、釋放。在函數體中定義的變量通常在棧上。
堆:一般由程序員分配釋放。用new、malloc等分配內存函數分配得到的就是在堆上。
30.成員變量和成員函數前加static的作用?
答
它們被稱為常成員變量和常成員函數,又稱為類成員變量和類成員函數。分別用來反映類的狀態。比如類成員變量可以用來統計類實例的數量,類成員函數負責這種統計的動作。
31.請指出GAC的含義?
答
全局程序集緩存。
32.DataReader與Dataset有什么區別?
答
DataReader和DataSet最大的區別在於,DataReader使用時始終占用SqlConnection,在線操作數據庫.任何對SqlConnection的操作都會引發DataReader的異常.因為DataReader每次只在內存中加載一條數據,所以占用的內存是很小的..因為DataReader的特殊性和高性能.所以DataReader是只進的.你讀了第一條后就不能再去讀取第一條了. DataSet則是將數據一次性加載在內存中.拋棄數據庫連接.讀取完畢即放棄數據庫連接.因為DataSet將數據全部加載在內存中.所以比較消耗內存.但是確比DataReader要靈活.可以動態的添加行,列,數據.對數據庫進行回傳更新操作
33.在c#中using和new這兩個關鍵字有什么意義,請寫出你所知道的意義?using 指令和語句 new 創建實例 new 隱藏基類中方法。
答
using 引入名稱空間或者使用非托管資源,使用完對象后自動執行實現了IDisposable接口的類的Dispose方法
new 新建實例或者隱藏父類方法
34.什么是虛函數?什么是抽象函數?
答
虛函數:沒有實現的,可由子類繼承並重寫的函數。Virtual CallSomeOne();
抽象函數:規定其非虛子類必須實現的函數,必須被重寫。public abstract void CallSomeOne();
35.什么是SOAP,有哪些應用。
答
simple object access protocal,簡單對象接受協議.以xml為基本編碼結構,建立在已有通信協議上(如http,不過據說ms在搞最底層的架構在tcp/ip上的soap)的一種規范Web Service使用的協議..
36.C#中 property 與 attribute的區別,他們各有什么用處,這種機制的好處在哪里?
答
在C#中有兩個屬性,分別為Property和Attribute,
Property比較簡單,就是我們常用的get和set,主要用於為類中的private和protected變量提供讀取和設置的接口。
Attribute用來說明這個事物的各種特征的一種描述。而Attribute就是干這事的。它允許你將信息與你定義的C#類型相關聯,作為類型的標注。這些信息是任意的,就是說,它不是由語言本身決定的,你可以隨意建立和關聯任何類型的任何信息。你可以作用屬性定義設計時信息和運行時信息,甚至是運行時的行為特征。關鍵在於這些信息不僅可以被用戶取出來作為一種類型的標注,它更可以被編譯器所識別,作為編譯時的一種附屬條件參加程序的編譯。定義屬性:屬性實際上是一個派生自System.Attribute基類的類。System.Attribute類含有幾個用於訪問和檢查自定義屬性的方法。盡管你有權將任何類定義為屬性,但是按照慣例來說,從System.Attribute派生類是有意義的
37.用sealed修飾的類有什么特點?
答
密封,不能繼承。
38.public abstract override void F(); 答:abstract override 是不可以一起修飾.
39.大概描述一下ASP。NET服務器控件的生命周期
答
初始化 加載視圖狀態 處理回發數據 加載 發送回發更改通知 處理回發事件 預呈現 保存狀態 呈現 處置 卸載
40.Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?
答
不能,可以實現接口
41.Static Nested Class 和 Inner Class的不同
答
Static Nested Class是被聲明為靜態(static)的內部類,它可以不依賴於外部類實例被實例化。而通常的內部類需要在外部類實例化后才能實例化。
42.&和&&的區別。
答
&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and).
43.HashMap和Hashtable的區別
答
HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable
44.<%# %> 和 <% %> 有什么區別?
答
<%# %>表示綁定的數據源
<% %>是服務器端代碼塊
45.asp.net中web應用程序獲取數據的流程
A.Web Page B.Fill C.Sql05 D.Data Sourse E.DataGrid F.DataSet G.Select and Connect Commands H.Sql Data Adapter
答
a,e,d,f,h,g,b,c
46.請將字符串"I am a student"按單詞逆序輸出如"student a am I"
答
string S = "I am a student";
char[] C = new char[] { ' '};
string[] n =S.Split(C);
int length = S.Length;
for (int i =length-1 ; i >=0; i--)
{
Console.Write(n[i]);
if (i != 0)
{
Console.Write(" ");
}
}
47..NET和C#有什么區別
答
.NET一般指 .NET FrameWork框架,它是一種平台,一種技術。
C#是一種編程語言,可以基於.NET平台的應用。
48.求以下表達式的值,寫出您想到的一種或幾種實現方法:1-2+3-4+……+m
答
int Num = this.TextBox1.Text.ToString() ;
int Sum = 0 ;
for (int i = 0 ; i < Num + 1 ; i++)
{
if((i%2) == 1)
{
Sum += i ;
}
else
{
Sum = Sum - I ;
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine() ;
49.CTS、CLS、CLR分別作何解釋?
答
CTS:通用語言系統。CLS:通用語言規范。CLR:公共語言運行庫。
50.什么是強類型系統?
答
RTTI:類型識別系統。
51..net的Remoting 的工作原理是什么?
答
服務器端向客戶端發送一個進程編號,一個程序域編號,以確定對象的位置
52.面向對象的語言具有________性、_________性、________性
答
封裝、繼承、多態。
封裝:用抽象的數據類型將數據和基於數據的操作封裝在一起,數據被保護在抽象數據類型內部。
繼承:子類擁有父類的所有數據和操作。
多態:一個程序中同名的不同方法共存的情況。有兩種形式的多態– 重載與重寫。
53.啟動一個線程是用run()還是start()?
答
啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味着它可以由JVM調度並執行。這並不意味着線程就會立即運行。
run()方法可以產生必須退出的標志來停止一個線程。
54.sleep()和 wait() 有什么區別?
答
sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿后,線程不一定立即恢復執行。
這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行,除非(a)“醒來”的線程具有更高的優先級
(b)正在運行的線程因為其它原因而阻塞。
wait()是線程交互時,如果線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。
55 .net Remoting 和 Web Service 的區別?
2、Remoting不是標准,而Web Service是標准;
3、Remoting一般需要通過一個WinForm或是Windows服務進行啟動,而Web Service則需要IIS進行啟動。
4、在VS.net開發環境中,專門對Web Service的調用進行了封裝,用起來比Remoting方便
建議還是采用Web Service好些,對於開發來說更容易控制。
Web Service大體上分為5個層次:
1. Http傳輸信道
2. XML的數據格式
3. SOAP封裝格式
4. WSDL的描述方式
5. UDDI
總體上來講,.NET 下的 Web Service結構比較簡單,也比較容易理解和應用: 一般來講在.NET結構下的WebService應用都是基於.net Framework以及IIS的架構之下,所以部署(Dispose)起來相對比較容易點。
首先WebService必須把暴露給客戶端的方法所在的類繼承於:System.Web.Services.WebService這個基類,其次所暴露的方法前面必須有[WebMethod]或者[WebMethodAttribute]
WebService的運行機理(運行過程)
首先客戶端從服務器的到WebService的WSDL,同時在客戶端聲稱一個代理類(Proxy Class) 這個代理類負責與WebService服務器進行Request 和Response
當一個數據(XML格式的)被封裝成SOAP格式的數據流發送到服務器端的時候,就會生成一個進程對象並且把接收到這個Request的SOAP包進行解析,然后對事物進行處理,處理結束以后再對這個計算結果進行SOAP包裝,然后把這個包作為一個Response發送給客戶端的代理類(Proxy Class),同樣地,這個代理類也對這個SOAP包進行解析處理,繼而進行后續操作。
.net Remoting 是在DCOM等基礎上發展起來的一種技術,它的主要目的是實現跨平台、跨語言、穿透企業防火牆,這也是他的基本特點,與WebService有所不同的是,它支持HTTP以及TCP信道,而且它不僅能傳輸XML格式的SOAP包,也可以傳輸傳統意義上的二進制流,這使得它變得效率更高也更加靈活。而且它不依賴於IIS,用戶可以自己開發(Development)並部署(Dispose)自己喜歡的宿主服務器,所以從這些方面上來講WebService其實上是.net Remoting的一種特例。
他的優點是用戶既可以使用TCP信道方式進行二進制流方式通信,也可以使用HTTP信道進行SOAP格式的性通信 ,效率相對WebService要高不少;但是它的缺點也很明顯,.net remoting只能應用於MS 的.net Framework之下。
從性能上來講Remoting的效率和傳統的DCOM、COM+的性能很相近!
ParentClass pc = new ChildClass();pc.VirtualMethod(...);
如果子類是重寫(override)父類的VirtualMethod,則上面的第二行語句將調用子類的該方法
如果子類是覆蓋(new)父類的VirtualMethod,則上面的第二行語句將調用父類的該方法
class Class1 {
private string str = "Class1.str";
private int i = 0;
static void StringConvert(string str) {
str = "string being converted.";
}
static void StringConvert(Class1 c) {
c.str = "string being converted.";
}
static void Add(int i) {
i++;
}
static void AddWithRef(ref int i) {
i++;
}
static void Main() {
int i1 = 10;
int i2 = 20;
string str = "str";
Class1 c = new Class1();
Add(i1);
AddWithRef(ref i2);
Add(c.i);
StringConvert(str);
StringConvert(c);
Console.WriteLine(i1);
Console.WriteLine(i2);
Console.WriteLine(c.i);
Console.WriteLine(str);
Console.WriteLine(c.str);
}
}
答
59.寫出程序的輸出結果
public abstract class A
{
public A()
{
Console.WriteLine('A');
}
public virtual void Fun()
{
Console.WriteLine("A.Fun()");
}
}
public class B: A
{
public B()
{
Console.WriteLine('B');
}
public new void Fun()
{
Console.WriteLine("B.Fun()");
}
public static void Main()
{
A a = new B();
a.Fun();
}
}
答
60.寫出程序的輸出結果
public class A
{
public virtual void Fun1(int i)
{
Console.WriteLine(i);
}
public void Fun2(A a)
{
a.Fun1(1);
Fun1(5);
}
}
public class B : A
{
public override void Fun1(int i)
{
base.Fun1 (i + 1);
}
public static void Main()
{
B b = new B();
A a = new A();
a.Fun2(b);
b.Fun2(a);
}
}
答
61.值類型和引用類型的區別?寫出C#的樣例代碼
答
基於值類型的變量直接包含值。將一個值類型變量賦給另一個值類型變量時,將復制包含的值。這與引用類型變量的賦值不同,引用類型變量的賦值只復制對對象的引用,而不復制對象本身。所有的值類型均隱式派生自 System.ValueType。與引用類型不同,從值類型不可能派生出新的類型。但與引用類型相同的是,結構也可以實現接口。與引用類型不同,值類型不可能包含 null值。然而,可空類型功能允許將 null 賦給值類型。每種值類型均有一個隱式的默認構造函數來初始化該類型的默認值。值類型主要由兩類組成:結構、枚舉,結構分為以下幾類:Numeric(數值)類型、整型、浮點型、decimal、bool、用戶定義的結構。引用類型的變量又稱為對象,可存儲對實際數據的引用。聲明引用類型的關鍵字:class、interface、delegate、內置引用類型:object、string
62.C#中的接口和類有什么異同。
答
異:不能直接實例化接口。接口不包含方法的實現。接口、類和結構可從多個接口繼承。但是C# 只支持單繼承:類只能從一個基類繼承實現。類定義可在不同的源文件之間進行拆分。
同:接口、類和結構可從多個接口繼承。接口類似於抽象基類:繼承接口的任何非抽象類型都必須實現接口的所有成員。接口可以包含事件、索引器、方法和屬性。一個類可以實現多個接口。
63.UDP連接和TCP連接的異同。
答
TCP---傳輸控制協議,提供的是面向連接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數據。TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
UDP---用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快。
64.請解釋web.config文件中的重要節點
答
Web.config文件是一個XML文本文件,它用來儲存 ASP.NET Web 應用程序的配置信息(如最常用的設置ASP.NET Web 應用程序的身份驗證方式),它可以出現在應用程序的每一個目錄中。當你通過VB.NET新建一個Web應用程序后,默認情況下會在根目錄自動創建一個默認的Web.config文件,包括默認的配置設置,所有的子目錄都繼承它的配置設置。如果你想修改子目錄的配置設置,你可以在該子目錄下新建一個Web.config文件。它可以提供除從父目錄繼承的配置信息以外的配置信息,也可以重寫或修改父目錄中定義的設置。 1、<authentication> 節作用:配置 ASP.NET 身份驗證支持(為Windows、Forms、PassPort、None四種)。該元素只能在計算機、站點或應用程序級別聲明。<authentication> 元素必需與<authorization> 節配合使用。示例:以下示例為基於窗體(Forms)的身份驗證配置站點,當沒有登陸的用戶訪問需要身份驗證的網頁,網頁自動跳轉到登陸網頁。<authentication mode="Forms" > <forms loginUrl="logon.aspx" name=".FormsAuthCookie"/></authentication> 其中元素loginUrl表示登陸網頁的名稱,name表示Cookie名稱2、<authorization> 節作用:控制對 URL 資源的客戶端訪問(如允許匿名用戶訪問)。此元素可以在任何級別(計算機、站點、應用程序、子目錄或頁)上聲明。必需與<authentication> 節配合使用。3、<compilation>節作用:配置 ASP.NET 使用的所有編譯設置。默認的debug屬性為“True”.在程序編譯完成交付使用之后應將其設為True(Web.config文件中有詳細說明,此處省略示例)4、<customErrors>作用:為 ASP.NET 應用程序提供有關自定義錯誤信息的信息。它不適用於 XML Web services 中發生的錯誤。5、<httpRuntime>節作用:配置 ASP.NET HTTP 運行庫設置。該節可以在計算機、站點、應用程序和子目錄級別聲明。 6、 <pages>作用:標識特定於頁的配置設置(如是否啟用會話狀態、視圖狀態,是否檢測用戶的輸入等)。<pages>可以在計算機、站點、應用程序和子目錄級別聲明。7、<sessionState> 作用:為當前應用程序配置會話狀態設置(如設置是否啟用會話狀態,會話狀態保存位置)。 8、<trace> 作用:配置 ASP.NET 跟蹤服務,主要用來程序測試判斷哪里出錯。
65.您在什么情況下會用到虛方法?它與接口有什么不同?
當在繼承類中想重寫某一方法時會用到虛方法;虛方法是類的成員函數,接口相當於抽象類
66.維護數據庫的完整性、一致性、你喜歡用觸發器還是自寫業務邏輯?為什么
答
盡可能用約束(包括CHECK、主鍵、唯一鍵、外鍵、非空字段)實現,這種方式的效率最好;其次用觸發器,這種方式可以保證無論何種業務系統訪問數據庫都能維持數據庫的完整性、一致性;最后再考慮用自寫業務邏輯實現,但這種方式效率最低、編程最復雜,當為下下之策。
67.設有關系EMP(ENO,ENAME,SALARY,DNO ),其中各屬性的含義依次為職工號、姓名、工資和所在部門號,以及關系DEPT(DNO,DNAME,MANAGER),其中各屬性含義依次為部門號、部門名稱、部門經理的職工號。試用SQL語句完成以下查詢:
a) 列出各部門中工資不低於600元的職工的平均工資。
select dno , avg(salary) as average from emp where salary>=600 group by dno
b) 查詢001號職工所在部門名稱。
select DNAME from dept where DNO = (select DNO from emp where eno=’001’)
或者
select d.dname from dept as d left jon emp as e on e.dno = d.dno where e.eno=’001’
c)請用SQL語句將“銷售部”的那些工資數額低於600的職工的工資上調10%。
update EMP set SALARY =SALARY*(1+0.1) where SALARY<600 and DNO = ( select DNO from dept where dname= ‘銷售部’ )
68.以下關於ref和out的描述
答
使用ref參數,傳遞到ref參數的參數必須最先初始化。
使用ref參數,必須將參數作為ref參數顯式傳遞到方法。
69.下面的例子中
using System;
class A
{
public static int X;
static A(){
X=B.Y+1;
}
}
class B
{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine(“X={0},Y={1}“,A.X,B.Y);
}
}
產生的輸出結果是什么?
答
x=1,y=2