Net面接問題_コード#コード#
11193 ワード
///////////////
1.子の親override書き換えメソッド呼び出し(親のメソッドも上書きされます)書き換えの親メソッドには、修飾子abstract、virtual、またはoverrideを付ける必要があります.
using System;using System.Collections.Generic;using System.Text;
namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Father dd= new son(); dd.write();
Console.ReadLine(); } }
class Father { public Father() { write(); }
public virtual void write() { }
}
class son : Father { public int x; public int y;
public son() { x = -1; y = -1;//write(); }
public override void write() { Console.WriteLine("x={0},y={1}",x,y);
}
}}
x=0,y=0
x=-1,y=-1
new son()という文は、まずベースクラス構築関数のコードwrite()を初期化する必要があります.この場合、son()はまだ初期化されていませんので、デフォルトx=0、y=0.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.new新規インスタンスまたは親メソッドを非表示にする例:public class A{public A{}public write(){Console.WriteLine("A.write()})}
}
public class B:A{
public B{} new public write(){Consolw.WriteLine("B.write()")}}
B b=new B(); b.write();//出力B.write();A a=b; a.write();//出力A.write()
68.1つの文字列に対する処理を実現するには、まずその文字列の先頭と末尾のスペースを削除し、文字列の間に連続するスペースがある場合は、1つのスペースのみを保持する、すなわち文字列の間に複数のスペースがあることを許可するが、連続するスペース数は1つを超えてはならない.
回答:
string abc = "sdf sdfsd sdfsdfsdff sdfdsf";//abc = Regex.Replace(abc, "\\s+", ""); abc = Regex.Replace(abc, "+", "");
69.2つのobjectがequalsであるか否かを比較する
object.equals(objectA,objectB)
70.SingleTonClassキー:static、コンストラクション関数プライベート
class SingleTonClass { private static SingleTonClass sa; private SingleTonClass() {
}
public static SingleTonClass GetSingleTonClass(){if(sa==null){sa=new SingleTonClass();Console.WriteLine("初期化されていない");Else{Console.WriteLine(「初期化済み」);
} return sa; }
}
//呼び出し
class Program { static void Main(string[] args) {
SingleTonClass.GetSingleTonClass();//出力は初期化されていませんSingleTonClass.GetSingleTonClass();//出力はSingleTonClassに初期化する.GetSingleTonClass();//出力はSingleTonClassに初期化する.GetSingleTonClass();//出力が初期化されました}
94.次のコードに何か間違いがありますか?
using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F(); 答え:abstract overrideは一緒に修飾することはできません.
}
95.特定の地域の通貨、例えばfloatの値が米国の通貨として表示される
System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");
//System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");イギリスの通貨タイプen-GBのためにmsdnで特定の国の
decimal y = 9999999999999999999999999999m;
string str = String.Format(MyCulture,"My amount = {0:c}",y); {0:c}//cは通貨
109.HTMLページを作成し、以下の機能を実現し、左クリックで「こんにちは」、右クリックで「右クリック禁止」を表示する.2分後に自動的にページを閉じます.
答:
setTimeout('window.close();',3000);
function show()
{
if (window.event.button == 1)
{
alert(「左」);
}
else if (window.event.button == 2)
{
alert(「右」);
}
}
11.hashtable、hashmapはkey/valueであり、keyは同じではない.mapはスレッドセキュリティを実現しておらず、keyはnullであってもよい.
Hashtable ht = new Hashtable(); ht.Add("1", "2"); ht.Add("2","2");
12. sql:ユーザーのオンライン時間を統計します.
onlineテーブル、username、operate、timeがあります
テーブルにデータがあるとします.
lizi,login,2013/1/1 12:00:33
mike,login,2013/1/1 14:33:45
lizi,exit,2013/1/1 19:33:55
mike,exit,2012/1/1 23:33:44
lizi,4:33:12(オンライン時間4時間,33分,12秒)
コード:
select a.[username],a.time as login_time,b.time as exit_time
,cast((floor(datediff(ss,a.time,b.time)/3600))as nvarchar//取得時間数,datediff(hh/mi/ss,starttime,endtime)
+':'+cast((floor(datediff(ss,a.time,b.time)%3600/60)as nvarchar)/整数時間減算後、分数を取得
+':'+cast(floor( datediff(ss,a.time,b.time))%3600%60 as nvarchar)
as totaltime from
online as a , online as b where a.[username]=b.[username] and a.operate='login' and b.operate='exit'
13.配列100個の整数を1から10000まで生成する.サイズ別に並べます.
結果は小さいものから大きいものに並べられた.
//大から小へ並ぶ
1.子の親override書き換えメソッド呼び出し(親のメソッドも上書きされます)書き換えの親メソッドには、修飾子abstract、virtual、またはoverrideを付ける必要があります.
using System;using System.Collections.Generic;using System.Text;
namespace ConsoleApplication1{ class Program { static void Main(string[] args) { Father dd= new son(); dd.write();
Console.ReadLine(); } }
class Father { public Father() { write(); }
public virtual void write() { }
}
class son : Father { public int x; public int y;
public son() { x = -1; y = -1;//write(); }
public override void write() { Console.WriteLine("x={0},y={1}",x,y);
}
}}
x=0,y=0
x=-1,y=-1
new son()という文は、まずベースクラス構築関数のコードwrite()を初期化する必要があります.この場合、son()はまだ初期化されていませんので、デフォルトx=0、y=0.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.new新規インスタンスまたは親メソッドを非表示にする例:public class A{public A{}public write(){Console.WriteLine("A.write()})}
}
public class B:A{
public B{} new public write(){Consolw.WriteLine("B.write()")}}
B b=new B(); b.write();//出力B.write();A a=b; a.write();//出力A.write()
68.1つの文字列に対する処理を実現するには、まずその文字列の先頭と末尾のスペースを削除し、文字列の間に連続するスペースがある場合は、1つのスペースのみを保持する、すなわち文字列の間に複数のスペースがあることを許可するが、連続するスペース数は1つを超えてはならない.
回答:
string abc = "sdf sdfsd sdfsdfsdff sdfdsf";//abc = Regex.Replace(abc, "\\s+", ""); abc = Regex.Replace(abc, "+", "");
69.2つのobjectがequalsであるか否かを比較する
object.equals(objectA,objectB)
70.SingleTonClassキー:static、コンストラクション関数プライベート
class SingleTonClass { private static SingleTonClass sa; private SingleTonClass() {
}
public static SingleTonClass GetSingleTonClass(){if(sa==null){sa=new SingleTonClass();Console.WriteLine("初期化されていない");Else{Console.WriteLine(「初期化済み」);
} return sa; }
}
//呼び出し
class Program { static void Main(string[] args) {
SingleTonClass.GetSingleTonClass();//出力は初期化されていませんSingleTonClass.GetSingleTonClass();//出力はSingleTonClassに初期化する.GetSingleTonClass();//出力はSingleTonClassに初期化する.GetSingleTonClass();//出力が初期化されました}
94.次のコードに何か間違いがありますか?
using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F(); 答え:abstract overrideは一緒に修飾することはできません.
}
95.特定の地域の通貨、例えばfloatの値が米国の通貨として表示される
System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");
//System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");イギリスの通貨タイプen-GBのためにmsdnで特定の国の
decimal y = 9999999999999999999999999999m;
string str = String.Format(MyCulture,"My amount = {0:c}",y); {0:c}//cは通貨
109.HTMLページを作成し、以下の機能を実現し、左クリックで「こんにちは」、右クリックで「右クリック禁止」を表示する.2分後に自動的にページを閉じます.
答:
setTimeout('window.close();',3000);
function show()
{
if (window.event.button == 1)
{
alert(「左」);
}
else if (window.event.button == 2)
{
alert(「右」);
}
}
11.hashtable、hashmapはkey/valueであり、keyは同じではない.mapはスレッドセキュリティを実現しておらず、keyはnullであってもよい.
Hashtable ht = new Hashtable(); ht.Add("1", "2"); ht.Add("2","2");
12. sql:ユーザーのオンライン時間を統計します.
onlineテーブル、username、operate、timeがあります
テーブルにデータがあるとします.
lizi,login,2013/1/1 12:00:33
mike,login,2013/1/1 14:33:45
lizi,exit,2013/1/1 19:33:55
mike,exit,2012/1/1 23:33:44
lizi,4:33:12(オンライン時間4時間,33分,12秒)
コード:
select a.[username],a.time as login_time,b.time as exit_time
,cast((floor(datediff(ss,a.time,b.time)/3600))as nvarchar//取得時間数,datediff(hh/mi/ss,starttime,endtime)
+':'+cast((floor(datediff(ss,a.time,b.time)%3600/60)as nvarchar)/整数時間減算後、分数を取得
+':'+cast(floor( datediff(ss,a.time,b.time))%3600%60 as nvarchar)
as totaltime from
online as a , online as b where a.[username]=b.[username] and a.operate='login' and b.operate='exit'
13.配列100個の整数を1から10000まで生成する.サイズ別に並べます.
1 static void Main(string[] args)
2 {
3 List<int> list = new List<int>();
4 Random r = new Random();
5 int[] array = new int[100];
6 int temp = 0;
7 while (list.Count < 100)
8 {
9 temp = r.Next(1, 10001);
10 if (!list.Contains(temp))
11 {
12 list.Add(temp);
13 }
14
15
16 }
17
18 list.Sort();
19 array = list.ToArray();
20
21 foreach (int i in array)
22 {
23 Console.WriteLine(i.ToString());
24 }
25 Console.Read();
26 }
結果は小さいものから大きいものに並べられた.
//大から小へ並ぶ
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int>();
Random r = new Random();
int[] array = new int[100];
int temp = 0;
while (list.Count < 100)
{
temp = r.Next(1, 10001);
if (!list.Contains(temp))
{
list.Add(temp);
}
}
//list.Sort(); //
// Console.WriteLine( Comparer<int>.Default.ToString());
//System.Collections.Generic.GenericComparer`1[System.Int32]
list.Sort(FromMaxToMin);
array = list.ToArray();
foreach (int i in array)
{
Console.WriteLine(i.ToString());
}
Console.Read();
}
//
public static int FromMaxToMin(int a,int b)
{
if (a > b) return -1;
else if (a == b) return 0;
else return 1;
}
}