精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

新蛋科技.net工程方面的筆試題

  面試前先了解筆試吧。以下是CN人才網(wǎng)小編為大家精心搜集和整理的新蛋科技.net工程方面的筆試題,希望大家喜歡!

  新蛋科技.net工程方面的筆試題

  1、 DataSet和DataReader的區(qū)別和相同點(diǎn),分別適合用于什么樣的情況?

  答:

  2、 有基類如下:

  public class parent

  {

  public parent()

  {

  Console.Write(“Parent”);

  }

  }

  請(qǐng)寫出一個(gè)子類Son,要求子類的構(gòu)造函數(shù)實(shí)現(xiàn)如下的功能:(1)輸出兒子的NAME、SEX、AGE、以及Parent,(2)要求在Son的構(gòu)造函數(shù)里不能有任何的命令語句出現(xiàn)。

  public class parent

  {

  public parent()

  {

  Console.Write(“Parent”);

  }

  }

  public class Son:parent

  { static string name=null;

  static int sex=0;

  static int age=0;

  public parent(string name,int sex,int age):base()

  {

  name=name;

  sex=sex;

  age=age;

  display();

  }

  publci void display()

  {

  Console.WriteLine(“name=”+name);

  Console.WriteLine(“sex=”+sex);

  Console.WriteLine(“age=”+age);

  }

  }

  3、 請(qǐng)例舉出三種以上進(jìn)行頁面重定向的方式(包括服務(wù)端和客戶端)。

  答: 第一種: Response.Redirect,

  第二種: Server.Transfer

  第三種:

  function redirect(url) {

  document.theForm.action = url;

  document.theForm.submit();

  }

  第四種: StringBuilder sb=new StringBuilder();

  sb.Append(“ ”);

  Response.Write(sb.ToString());

  4、 寫出禁用ViewState的語句。

  答: Control(具體的某個(gè)控件).EnableViewState=false;

  5、 請(qǐng)談一談.NET的code-behind模式和code_clude模式的區(qū)別,和各自的優(yōu)點(diǎn)及缺點(diǎn)。

  6、 寫出下列七個(gè)程序段的輸出結(jié)果:

  (1)

  interface InFace

  {

  void fun();

  }

  class MyParent:InFace

  {

  public void fun()

  {

  Console.WriteLine(“Parent”);

  }

  }

  class MySon:MyParent

  {

  public void fun()

  {

  Console.WriteLine(“Son”);

  }

  }

  public class MyTest

  {

  public static void Main(string[] args)

  {

  InFace inf=new MySon();

  inf.fun();

  }

  }

  結(jié)果:Parent

  (2)

  interface InFace

  {

  void fun();

  }

  class MyParent:InFace

  {

  public new void fun()

  {

  Console.WriteLine(“Parent”);

  }

  }

  class MySon:MyParent

  {

  public void fun()

  {

  Console.WriteLine(“Son”);

  }

  }

  public class MyTest

  {

  public static void Main(string[] args)

  {

  InFace inf=new MySon();

  inf.fun();

  Console.Read();

  }

  }

  結(jié)果:Parent

  (3)

  interface InFace

  {

  void fun();

  }

  class MyParent:InFace

  {

  public new void fun()

  {

  Console.WriteLine(“Parent”);

  }

  }

  class MySon:MyParent

  {

  public new void fun()

  {

  Console.WriteLine(“Son”);

  }

  }

  public class MyTest

  {

  public static void Main(string[] args)

  {

  InFace inf=new MySon();

  inf.fun();

  Console.Read();

  }

  }

  結(jié)果:Parent

  (4)

  interface InFace

  {

  void fun();

  }

  class MyParent:InFace

  {

  public void fun()

  {

  Console.WriteLine(“Parent”);

  }

  }

  class MySon:MyParent

  {

  public override void fun()

  {

  Console.WriteLine(“Son”);

  }

  }

  public class MyTest

  {

  public static void Main(string[] args)

  {

  InFace inf=new MySon();

  inf.fun();

  Console.Read();

  }

  }

  結(jié)果:語法錯(cuò)誤: 無法重寫繼承成員“ConsoleApplication6.MyParent.fun()”,因?yàn)樗礃?biāo)記為 virtual、abstract 或 override

  (5)

  interface InFace

  {

  void fun();

  }

  abstract class MyParent:InFace

  {

  public virtual void fun()

  {

  Console.WriteLine(“Parent”);

  }

  }

  class MySon:MyParent

  {

  public override void fun()

  {

  Console.WriteLine(“Son”);

  }

  }

  public class MyTest

  {

  public static void Main(string[] args)

  {

  InFace inf=new MySon();

  inf.fun();

  Console.Read();

  }

  }

  結(jié)果:Son

  (6)

  interface InFace

  {

  void fun();

  }

  class MyParent:InFace

  {

  public virtual void fun()

  {

  Console.WriteLine(“Parent”);

  }

  }

  class MySon:MyParent

  {

  public override void fun()

  {

  Console.WriteLine(“Son”);

  }

  }

  public class MyTest

  {

  public static void Main(string[] args)

  {

  InFace inf=new MySon();

  inf.fun();

  Console.Read();

  }

  }

  結(jié)果:Son

  (7)

  interface InFace

  {

  void fun();

  }

  abstract class MyParent:InFace

  {

  public void fun()

  {

  Console.WriteLine(“Parent”);

  }

  }

  class MySon:MyParent

  {

  public override void fun()

  {

  Console.WriteLine(“Son”);

  }

  }

  public class MyTest

  {

  public static void Main(string[] args)

  {

  InFace inf=new MySon();

  inf.fun();

  Console.Read();

  }

  }

  結(jié)果:語法錯(cuò)誤: 無法重寫繼承成員“ConsoleApplication6.MyParent.fun()”,因?yàn)樗礃?biāo)記為 virtual、abstract 或 override

  8、在.NET中有自動(dòng)的垃圾回收機(jī)制,但是我們也可以顯示聲明類的析構(gòu)函數(shù),請(qǐng)寫出下列程序的輸出結(jié)果:像這個(gè)程序一樣我們顯示聲明類的析構(gòu)函數(shù),會(huì)有什么問題出現(xiàn)?

  class Parent

  {

  public Parent()

  {

  Console.WriteLine(“Parent”);

  }

  ~Parent()

  {

  Console.WriteLine(“Delete Parent”);

  }

  }

  class Son:Parent

  {

  public Son():base()

  {

  Console.WriteLine(“Son”);

  }

  ~Son()

  {

  Console.WriteLine(“Delete Son”);

  }

  }

  public class MyTest

  {

  public static void Main(string[] args)

  {

  Son son=new Son();

  }

  }

  結(jié)果:Parent

  Son

  Delete Son

  Delete Parent

  9、 按值傳遞和按引用傳遞各有什么特點(diǎn)。它們有什么區(qū)別?

  答:在按值傳遞中,在被調(diào)方法中對(duì)變量所做的修改不會(huì)影響主調(diào)方法中的變量。

  在按引用傳遞中,在被調(diào)方法中對(duì)變量所做的修改會(huì)反映到主調(diào)方法中的變量。

  10、 寫出下更程序的輸出結(jié)果:

  (1)public class MyTest

  {

  public static void Main(string[] args)

  {

  int i=10;

  fun(i);

  Console.WriteLine(“i=”+i);

  Console.Read();

  }

  public static int fun(int a)

  {

  a++;

  Console.WriteLine(“a=”+a);

  return a;

  }

  }

  結(jié)果:a=11

  i=10

  (2)

  public static void Main(string[] args)

  {

  int i=10;

  fun(out i);

  Console.WriteLine(“i=”+i);

  Console.Read();

  }

  public static int fun(out int a)

  {

  a++;

  Console.WriteLine(“a=”+a);

  return a;

  }

  結(jié)果:語法錯(cuò)誤: 控制離開當(dāng)前方法之前必須對(duì)輸出參數(shù)“a”賦值

  使用了未賦值的局部變量“a”

  (3)

  public class MyTest

  {

  public static void Main(string[] args)

  {

  int i=10;

  fun(out i);

  Console.WriteLine(“i=”+i);

  Console.Read();

  }

  public static int fun(out int a)

  {

  a=12;

  a++;

  Console.WriteLine(“a=”+a);

  return a;

  }

  }

  結(jié)果:a=13

  i=13

  (5)

  public class MyTest

  {

  public static void Main(string[] args)

  {

  int i=10;

  fun(ref i);

  Console.WriteLine(“i=”+i);

  Console.Read();

  }

  public static int fun(ref int a)

  {

  a++;

  Console.WriteLine(“a=”+a);

  return a;

  }

  }

  結(jié)果:a=11

  i=11

  附關(guān)于out參數(shù)的相關(guān)知識(shí)點(diǎn):

  必須被賦值。

  方法參數(shù)上的 out 方法參數(shù)關(guān)鍵字使方法引用傳遞到方法的同一個(gè)變量。當(dāng)控制傳遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中。

  當(dāng)希望方法返回多個(gè)值時(shí),聲明 out 方法非常有用。使用 out 參數(shù)的方法仍然可以返回一個(gè)值。一個(gè)方法可以有一個(gè)以上的 out 參數(shù)。

  若要使用 out 參數(shù),必須將參數(shù)作為 out 參數(shù)顯式傳遞到方法。out 參數(shù)的值不會(huì)傳遞到 out 參數(shù)。

  不必初始化作為 out 參數(shù)傳遞的變量。然而,必須在方法返回之前為 out 參數(shù)賦值。

  屬性不是變量,不能作為 out 參數(shù)傳遞。

  如果兩個(gè)方法的聲明僅在 out 的使用方面不同,則會(huì)發(fā)生重載。不過,無法定義僅在 ref 和 out 方面不同的重載。例如,以下重載聲明是有效的:

  class MyClass

  {

  public void MyMethod(int i) {i = 10;}

  public void MyMethod(out int i) {i = 10;}

  }

  而以下重載聲明是無效的:

  class MyClass

  {

  public void MyMethod(out int i) {i = 10;}

  public void MyMethod(ref int i) {i = 10;}

  }

  與所有的 out 參數(shù)一樣,在使用數(shù)組類型的 out 參數(shù)前必須先為其賦值,即必須由接受方為其賦值。例如:

  public static void MyMethod(out int[] arr)

  {

  arr = new int[10]; // definite assignment of arr

  }

  與所有的 ref 參數(shù)一樣,數(shù)組類型的 ref 參數(shù)必須由調(diào)用方明確賦值。因此不需要由接受方明確賦值?梢詫(shù)組類型的 ref 參數(shù)更改為調(diào)用的結(jié)果。例如,可以為數(shù)組賦以 null 值,或?qū)⑵涑跏蓟癁榱硪粋(gè)數(shù)組。例如:

  public static void MyMethod(ref int[] arr)

  {

  arr = new int[10]; // arr initialized to a different array

  }

  下面的兩個(gè)示例說明 out 和 ref 在將數(shù)組傳遞給方法上的用法差異。

  示例 1

  在此例中,在調(diào)用方(Main 方法)中聲明數(shù)組 myArray,并在 FillArray 方法中初始化此數(shù)組。然后將數(shù)組元素返回調(diào)用方并顯示。

  // cs_array_ref_and_out.cs

  using System;

  class TestOut

  {

  static public void FillArray(out int[] myArray)

  {

  // Initialize the array:

  myArray = new int[5] {1, 2, 3, 4, 5};

  }

  static public void Main()

  {

  int[] myArray; // Initialization is not required

  // Pass the array to the callee using out:

  FillArray(out myArray);

  // Display the array elements:

  Console.WriteLine(“Array elements are:”);

  for (int i=0; i < myArray.Length; i++)

  Console.WriteLine(myArray[i]);

  }

  }

  輸出

  Array elements are:

  1

  2

  3

  4

  5

  示例 2

  在此例中,在調(diào)用方(Main 方法)中初始化數(shù)組 myArray,并通過使用 ref 參數(shù)將其傳遞給 FillArray 方法。在 FillArray 方法中更新某些數(shù)組元素。然后將數(shù)組元素返回調(diào)用方并顯示。

  // cs_array_ref_and_out2.cs

  using System;

  class TestRef

  {

  public static void FillArray(ref int[] arr)

  {

  // Create the array on demand:

  if (arr == null)

  arr = new int[10];

  // Otherwise fill the array:

  arr[0] = 123;

  arr[4] = 1024;

  }

  static public void Main ()

  {

  // Initialize the array:

  int[] myArray = {1,2,3,4,5};

  // Pass the array using ref:

  FillArray(ref myArray);

  // Display the updated array:

  Console.WriteLine(“Array elements are:”);

  for (int i = 0; i < myArray.Length; i++)

  Console.WriteLine(myArray[i]);

  }

  }

  輸出

  Array elements are:

  123

  2

  3

  4

  1024

  10、 怎樣從彈出窗口中刷新主窗口?

  private void button1_Click(object sender, System.EventArgs e)

  {

  Form2 frm = new Form2();

  try

  {

  frm.ShowDialog(this);

  }

  finally

  {

  frm.Dispose();

  }

  }

  private void button1_Click(object sender, System.EventArgs e)

  {

  Form parent = this.Owner as Form;

  if(parent != null)

  parent.Refresh();

  }

  11、 Attribute的參數(shù)?

  答:Attribute類的構(gòu)造函數(shù)沒有參數(shù),

  AttributeUsageAttribute類指定另一特性類的用法,有一個(gè)參數(shù)

  public AttributeUsageAttribute( AttributeTargets validOn);

  12、 怎樣確定垃圾確實(shí)被回收了,調(diào)用了supressfinalize或collect方法就一定銷毀了對(duì)象嗎?顯示調(diào)用了析構(gòu)方法就一定銷毀了對(duì)象嗎?

  答:垃圾回收 GC 類提供 GC.Collect 方法,您可以使用該方法讓應(yīng)用程序在一定程度上直接控制垃圾回收器,這就是強(qiáng)制垃圾回收。

  Finalize 方法和析構(gòu)函數(shù)如何允許對(duì)象在垃圾回收器自動(dòng)回收對(duì)象的內(nèi)存之前執(zhí)行必要的清理操作。

本文已影響6827
上一篇:雅虎計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)基礎(chǔ)筆試題 下一篇:信用社招聘筆試題目

相關(guān)文章推薦

|||||