- 积分
- 48
- 在线时间
- 22 小时
- 主题
- 8
- 注册时间
- 2015-8-24
- 帖子
- 39
- 最后登录
- 2022-12-4
- 帖子
- 39
- 软币
- 293
- 在线时间
- 22 小时
- 注册时间
- 2015-8-24
|
1、C#区分大小写的语言
2、命名空间(命名空间是可以嵌套的)
namespace
using
3、Main函数,参数与返回值(返回值为 viod或者int,参数为string[]或者没有参数)
程序的入口点
通过创建快键方式来给程序送参数,也可以通过另个的应用程序调用。
用批处理命令获取返回值:“@echo %ERRORLEVEL%”把这个命令用txt文档保存,并把扩展名改成bat,然后在vs命令行中获得结果。
4、C#中的注释
//单行注释
/* */多行注释
///xml注释
5、值类型:基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的值。
所有的值类型均隐式派生自 System. ValueType。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
值类型:简单类型(sbyte, short, int, long,byte, ushort, uint, ulong,char,float, double,decimal,bool)、枚举类型 (enum E {...} )、结构类型(struct S {...} )
引用类型:引用类型的变量又称为对象,可存储对实际数据的引用。
引用类型:类类型(class C {...} )、接口类型(interface I {...})、Unicode字符串(string)、数组类型(一维和多维数组 ,例如int[]和int[,])、委托类型(delegate T D(...) )
6、匿名类型:var v = new { Amount = 108, Message = "Hello" };v.Amount,v.Message;
7、Parse:类型.Parse(string)
int i=int.Parse(“123”);
Convert.To类型:强类型转换
int i=Convert.ToInt32(“123”);
8、条件语句:
if(条件)
{
}
else
{
}
switch(变量)
{
case 常量1:
break;
case 常量2:
break;
default:
break;
}
9、循环语句:
while
do……while
for
foreach( in )
10、跳转语句:
break
跳出全部循环
Continue
跳出本次循环
goto
static void Main(string[] args)
{
goto Mark;
Console.WriteLine("第一行");
Mark:
Console.WriteLine("第二行");
}
Return
返回
Throw
抛出异常
11、异常处理语句:
try……catch
try……cattch……finally
try……finally
12、结构的特点:
结构是值类型,而类是引用类型。
与类不同,结构的实例化可以不使用 new 运算符。
结构可以声明构造函数,但它们必须带参数。
一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object。
结构可以实现接口。
结构可用作可为 null 的类型,因而可向其赋 null 值。
结构的访问修饰符可以是public,internal,默认修饰符为internal.
结构可包含构造函数(有参),常量,字段,方法,属性,索引器,事件和嵌套类型。
成员的访问修饰符可是private,public但不可以是protected
结构的实例化有两种方式:
struct MyStr
{
public int i;
}
MyStr ms1=new MyStr();
MyStr ms2;
ms2.i=10;
13、数组:Array MyArr = Array.CreateInstance(typeof(int), 5);MyArr.SetValue(1, 0);//赋值
利用数组排序:Array.Sort(myarr);然后再foreach遍历。倒序:Array.Sort(myarr);Array.Reverse(myarr)(反转);然后再foreach 遍历。
一维数组的定义:
1、int[] arr = new int[2] { 1, 2 };
2、int[] arr = new int[] { 1, 2 };
3、int[] arr = new int[2];
arr[0] = 1;
arr[1] = 2;
4、int[] arr = { 1, 2 };
14、二维和多维数组的定义、初始化、遍历
int[,] arr = { { 1, 2 }, { 3, 4 } };
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.WriteLine(arr[i,j]);
}
}
foreach (var i in arr)
{
Console.WriteLine(i);
}
15、集合:
ArrayList al = new ArrayList();
al.Add(1);
al.Add("2");
foreach (object o in al)
{
Console.WriteLine("类型:{0}",o.GetType().Name);
Console.WriteLine("值为:{0}",o);
}
Console.WriteLine("======================");
for (int i = 0; i < al.Count; i++)
{
Console.WriteLine("类型:{0}",al.GetType ().Name);
Console.WriteLine("值为:{0}",al);
}
16、泛型:
List<T> 类是 ArrayList 类的泛型等效类。该类使用大小可按需动态增加的数组实现 IList<T> 泛型接口。
T是一个类型参数,标明列表中元素的准确类型,而不是ArrayList中的object中的类型。类型可以是值类型也可以是引用类型 。
List<int> mylist = new List<int>();
mylist.Add(1);
mylist.Add(2);
mylist.Add(3);
mylist.Add(4);
mylist.Add(5);
foreach (int i in mylist)
{
Console.WriteLine(i);
}
17、类的定义:
[访问修饰符] class <类名>
{
// 类的主体
}
18、方法:是包含一系列语句的代码块。作用是完成一定的功能。方法是通过指定修饰符、返回值类型、方法名称和任何方法参数在类或结构中声明的。这些部分统称为方法的“签名”。 方法参数括在括号中,并用逗号隔开。空括号表示方法不需要参数。在定义方法时的参数叫“形式参数(形参)”,在调用方法时的参数叫“实际参数(实参)”。
19、分布方法: partial 关键字指示可在命名空间中定义该类、结构或接口的其他部分。所有部分都必须使用 partial 关键字。在编译时,各个部分都必须可用来形成最终的类型。各个部分必须具有相同的可访问性,如 public、private 等。
注意事项:
分部方法声明必须以上下文关键字 partial 开头,并且方法必须返回 void。
分部方法可以有 ref 参数,但不能有 out 参数。
分部方法为隐式 private 方法,因此不能为 virtual 方法。
分部方法不能为 extern 方法,因为主体的存在确定了方法是在定义还是在实现。
分部方法可以有 static 和 unsafe 修饰符。
分部方法可以为泛型的。约束将放在定义分部方法声明上,但也可以选择重复放在实现声明上。参数和类型参数名称在实现声明和定义声明中不必相同。
不能将委托转换为分部方法。
20、访问修饰符:
public:访问不受限制。
protected:访问仅限于包含类或从包含类派生的类型。
Internal:访问仅限于当前程序集。
protected internal:访问仅限于当前程序集或从包含类派生的类型。
private:访问仅限于包含类型。
21、构造函数与类名相同,无返回值类型。构造函数:访问修饰符类名。析构函数:~类名
析构函数需要注意的:
不能在结构中定义析构函数。只能对类使用析构函数。
一个类只能有一个析构函数。
无法继承或重载析构函数。
无法调用析构函数。它们是被自动调用的。
析构函数既没有修饰符,也没有参数。
22、索引器:
索引器允许类或结构的实例就像数组一样进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。
使用索引器可以用类似于数组的方式为对象建立索引。
get 访问器返回值。set 访问器分配值。
this 关键字用于定义索引器。
value 关键字用于定义由 set 索引器分配的值。
索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。
索引器可被重载。
索引器可以有多个形参,例如当访问二维数组时。
class MyCol
{
string[] StrArr = new string[1];
public string this[int i]
{
get
{
return StrArr;
}
set
{
if (value.Length < 5)
{
StrArr = value;
}
}
}
}
class Program
{
static void Main(string[] args)
{
MyCol mc = new MyCol();
mc[0] = "aaa";
Console.WriteLine(mc[0]);
}
}
23、委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的调用可以像其他任何方法一样,具有参数和返回值。
与委托的签名(由返回类型和参数组成)匹配的任何可访问类或结构中的任何方法都可以分配给该委托。方法可以是静态方法,也可以是实例方法。这样就可以通过编程方式来更改方法调用,还可以向现有类中插入新代码。只要知道委托的签名,便可以分配自己的委托方法。
委托的定义:
delegate void Dele(int i);
定义方法:
public void Method(int i)
{
Console.WriteLine("参数为:{0}",i);
}
关联委托和方法:
Program pro = new Program();
Dele del = new Dele(pro.Method);
Dele del1=pro.Method;
del1(100);
del(100);
|
评分
-
查看全部评分
|