///////////////
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 新建实例或者隐藏父类方法(子类想用自己的方法,于是用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.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.
答:
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分钟后自动关闭页面。
答:<script language=javascript>
setTimeout('window.close();',3000);
function show()
{
if (window.event.button == 1)
{
alert("左");
}
else if (window.event.button == 2)
{
alert("右");
}
}
</script>
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; } }