##一、描述
此文章描述一下C#的一些基础知识
##二、基础知识
#####词典:其实就是一个Map集合,需要导入
//创建一个词典
using System.Collections.Generic;
Dictionary<String,String> map = new Dictionary<String,String> ();
//添加键值对
map.Add ("name1", "name1.txt");
map.Add ("name2", "name2.txt");
map.Add ("name3", "name3.txt");
map.Add ("name4", "name4.txt");
//输出对应键的值
Console.WriteLine ("outPut:"+map["name3"]);
#####获取某个方法执行的时间
Stopwatch timer = new Stopwatch();
timer.Start();
test();
timer.Stop();
Console.WriteLine("write:" + timer.ElapsedMilliseconds); //这里会输出方法执行用了多少时间
#####抽线类,实现需要加入override
//实现抽象类
class Student :OnClickListener{
private String myclass;
public Student(String name, String age, String myclassName) {
this.myclass = myclassName;
}
public void getMyClassName() {
Console.WriteLine(myclass);
}
//运用override来实现抽线类的方法
public override void getMessage()
{
Console.WriteLine("DDDD");
}
}
//抽线类
abstract class OnClickListener {
public abstract void getMessage();
}
#####重写基类方法(虚方法):需要重写基类的一个方法的时候,需要用virtual 和override 方法进行定义,这样才可以重写基类的方法。
class Student : Person
{
public override void GetMyName()
{
Console.WriteLine("User");
}
}
class Teacher : Person {
public override void GetMyName()
{
Console.WriteLine("Teacher");
}
}
//基类Person,拥有一个虚方法GetMyName
class Person {
public virtual void GetMyName() {
Console.WriteLine("Person");
}
}
#####Model类的get和set方法
class Person {
private String name;
public String Name {
get {
return name;
}
set {
name = value;
}
}
}
//抽象Get和Set
public abstract class Person
{
public abstract string Name
{
get;
set;
}
public abstract int Age
{
get;
set;
}
}
#####类增加索引器(可以存在多个索引器,只要参数存入的参数类型不同就好)
class MyList
{
static public int size = 10;
private string[] namelist = new string[size];
public string this[int index] {
get {
if (index >= 0 && index < namelist.Length - 1) {
return namelist[index];
}
return "";
}
set {
if (index >= 0 && index < namelist.Length - 1)
{
namelist[index] = value;
}
}
}
}
MyList mylist = new MyList();
mylist[0] = "123";
mylist[1] = "321";
for (int i = 0; i < MyList.size; i++) {
Console.WriteLine(mylist[i]);
}
####委托
delegate int NumberChanger(int n);
namespace DelegateAppl
{
class TestDelegate
{
static int num = 10;
public static int AddNum(int p)
{
num += p;
return num;
}
public static int MultNum(int q)
{
num *= q;
return num;
}
public static int getNum()
{
return num;
}
static void Main(string[] args)
{
// 创建委托实例
NumberChanger nc1 = new NumberChanger(AddNum);
NumberChanger nc2 = new NumberChanger(MultNum);
// 使用委托对象调用方法
nc1(25);
Console.WriteLine("Value of Num: {0}", getNum());
nc2(5);
Console.WriteLine("Value of Num: {0}", getNum());
Console.ReadKey();
}
}
}