//屏蔽掉转义字符的作用
string s1 = @"helloworld\nhello";
//格式化字符
int a=0,b=1;
string c="hello";
Console.WriteLine("{0}+{1},{2}", a, b, c);
Console.WriteLine("{0}+{0},{2}", a, b, c);//多次定位,b不被用到
格式化符根据序号一一对应。
泛型定义
public class myarraylist<T>
{
public T[] array;
public myarraylist(int size)
{
array = new T[size+1];
}
public void setarray(T value,int index)
{
array[index] = value;
}
public T findarray(int indxex)
{
return array[indxex];
}
}
public static main(string args[])
{
myarraylist<int> array = new myarraylist<int>(5);
for(int i = 0; i < 5; i++)
{
if(i%2 == 0) arg
{
array.setarray(2 * i, i);
}
else
{
array.setarray(i, i);
Console.WriteLine(array.findarray(i));
}
}
Console.ReadLine();
}
c#风格的字符串
结构体
struct Books
{
public string title;
public string author;
public string subject;
public int book_id;
//也可以定义函数
public void setValues(string t, string a, string s, int id)
{
title = t;
author = a;
subject = s;
book_id =id;
}
public void display()
{
Console.WriteLine("Title : {0}", title);
Console.WriteLine("Author : {0}", author);
Console.WriteLine("Subject : {0}", subject);
Console.WriteLine("Book_id :{0}", book_id);
}
};
public static void main(string[] agrs)
{
Books book1;
Books book2;
/* book 1 详述 */
Book1.title = "C Programming";
Book1.author = "Nuha Ali";
Book1.subject = "C Programming Tutorial";
Book1.book_id = 6495407;
Book1.setValues("C Programming",
"Nuha Ali", "C Programming Tutorial",6495407);
/* book 2 详述 */
Book2.setValues("Telecom Billing",
"Zara Ali", "Telecom Billing Tutorial", 6495700);
/* 打印 Book1 信息 */
Book1.display();
}
委托,类似C++函数指针
委托
在实际项⽬中更能体会作⽤,这⾥先了解基本使⽤。
委托(delegate)是⼀种存储函数引⽤的类型。
委托的定义指定了⼀个返回类型和⼀个参数列表
定义了委托之后,就可以声明该委托类型的变量,接着就可以把⼀个**返回类型跟参数列表跟委托 **
⼀样的函数赋值给这个变量。
委托的使⽤分两步
定义
声明(变量)
结构体,枚举的使⽤同上都分为定义和声明
整数类型、数组类型、字符串类型都是直接声明变量的,因为类型的定义已经完成了(CLR中已
经完成定义)
委托呢,就是⼀个函数类型,可以把⼀个函数赋值给委托类型。
定义委托的时候,跟函数有点像,只不过没有函数体。
只能赋值-参数和返回值⼀样的函数
delegate double MyDelegate(double param1, double param2);
static double Multiply(double param1, double param2)
{
return param1 * param2;
}
static double Divide(double param1, double param2)
{
return param1 / param2;
}
double param1 = 34; double param2 = 2;
MyDelegate de;
de = Multiply;
de(param1, param2);
de = Divide;
de(param1, param2);