c#基础
-.
1.数据类型存储
*1.堆栈:存储固定长度的数据,如int(占4字节). 值类型
*2.堆:存储可变长度的数据,如字符串. 引用类型
结构是值类型,类是引用类型
2.多维数组
string[,] Name={{"Lennon","John"},{"MAC","Paul"}};
3.
internal 变量只能在当前程序中被访问
protected internal 变量只能在当前程序中被访问,或者在派生当前类型的其他类型中被访问
4. Static
必须通过类直接访问该变量,而不能通过实例访问
5.Checked 与Unchecked
执行溢出检查
byte b= 255;
checked{
b++;
}
6. is 检查对象是否与特定的类型兼容.
int i =10;
if(i is object)
{
}
7.类方法
virtual 方法可以被其派生的类重写
New 方法隐藏了同名的继承方法
Abstract 这个虚拟方法定义了方法名,但没有提供执行方式.不能实例化,只能派生.
override 方法重写继承的方法或抽象的方法
Sealed 方法重写继承的虚拟方法,但不能被派生于这个类的其他类重写,必须和重写方法一起使用。
8.方法输入参数
*1.
using System;
class ParentClass
{
static void SomeFunction(int[] ints,int i)
{
ints[0]=1000;
i=0;
}
public static void Main()
{
int i = 200;
int[] ints={1,2,3,4};
SomeFunction(ints,i);
Console.WriteLine("i="+i);
Console.WriteLine("ints[0]="+ints[0]);
}
}
结果 200 ,1000 数组的值将改变.
*2.
using System;
class ParentClass
{
static void SomeFunction(int[] ints,ref int i)
{
ints[0]=1000;
i=0;
}
public static void Main()
{
int i = 200;
int[] ints={1,2,3,4};
SomeFunction(ints,ref i);
Console.WriteLine("i="+i);
Console.WriteLine("ints[0]="+ints[0]);
}
}
结果 0,1000 两方面值都将改变。 Ref用法
9. Out用法
using System;
class ParentClass
{
static void SomeFunction(out int i)
{
i= 200;
}
public static void Main()
{
int i ;
SomeFunction(out i);
Console.WriteLine(i);
}
}
----------------------------------
二: 类
1.实例和静态方法
如果方法不试图访问实例数据或其他实例方法,可以声明为static.不能在声明为static的方法中访问实例字段.
public class TestClass
{
private static unit minpasswordlength = 6;
public static uint getminpasswordlength()
{
return mimpasswordlength;
}
2.命名空间别名
using alias = NameSpaceName;
3.属性
*1.private static uint MinPasswordLength
{
get
{
return minPasswordLength;
}
set
{
if(value<=10)
minPasswordLength = value;
else
Console.WriteLine("Error");
}
}
*2.
public bool ChangePassword(string oldPassword,string newPassword)
{
if(oldPassword==Password&&newPassword.Length>=minPasswordLength)
{
Password =newPassword;
return true;
}
else
{
return false;
}
}
*3.
public decimal SubTotal{
get{return _price*_quantity;}
}
4.Const
值不能改变,并且必须在定义的时候设置。
public const uint MaxPasswordLength = 6;
隐式静态,对它必须用静态成员的语法,也就是类名.
Authenticator Julian = new Authenticator();
uint Max1 = Authenticator.maxPasswordLength;
uint Max2 = Julian.maxPasswordLength;