013.泛型、窗体常用属性

时间:2021-12-24 06:49:55

*是C#语言2.0和通用语言运行时的新特性
*利用参数化类型将类型抽象化,从而实现更为灵活的服用

优点:
*缓解了代码膨胀的情况
*提供了一个强类型的编程模型,类型安全
*值类型不再需要装箱操作
*性能的到提高
*代码可读性好

1.泛型方法

既可以放在普通类中也可以定义在泛型类中

访问修饰符[可选修饰符]返回类型 方法名<参数化类型>(参数列表){}

方法名(参数)://推断类型 根据给的类型推断出来他的参数化类型用的应该是什么
方法名<类型>(参数):

类型参数:习惯上用T或者T开头的单词 语法上符合C#命名规则即可

private static void Swap<T>(ref T n1,ref T n2)
{
T temp=n1;
n1=n2;
n2=temp;
}

2.泛型类

class 类名<T>{}

class 类名<X,Y>{}


3.默认值(defualt)

T t=defualt(T);

4.泛型约束

强迫类型遵守一定的规范

约束的语法:where T:constraint1,constraint2,where是关键字,contraint1,constraint2是约束内容

约束条件:

struct :值类型
class:引用类型
类名:此类或者其子类
接口:此接口或其实现类
new():必须有无参构造函数

类:
public class 类名<T>(T t)Where T:条件

方法:
public void 方法名<T>(T t)where T:条件

多个约束:

1/class/struct/baseclass 写到其他约束之前
2/new()写到其他约束之后

顺序:class (struct/baseclass) interface new()


5.泛型类的继承(实现)
public class Class1<T>:Class2<T>,IMyInterface<T>
{}

public class Class1<T>:Class2<String>,IMyInterface<T>
{}

泛型类继承泛型父类或实现泛型接口时,父类或接口中的参数化类型必须和当前类的参数化类型一致,或者使用具体类型.

6.泛型结构和泛型接口

Nullable<int>n=12;
Console.WriteLine(n);
n = null;
if (n.HasValue)
{
int num =n.Value;
}
Console.ReadKey();

6.窗体的常用属性

StartPosition: 窗体第一次出现的位置 CenterScreen
MaximizeBox:是否允许最大化 bool
MinimizeBox:是否允许最小化 bool
FormBorderStyle:设置窗体的边框和标题栏的外观行为 FixedSingle
Text : 设置标题栏的文字
Icon:设置标题栏的图标
WindowState:窗体初始可视状态
Backcolor:背景颜色
BackgroundImage:背景图片

013.泛型、窗体常用属性