Asp.NetMVC+EF(1)C#基础

命名参数

在调用时,给命名参数赋值时,附加上参数名称,解决参数顺序固定问题
例如,例子1

static void Main(string[] args)

{

Console.WriteLine(ShowComputer("i3 370M","2G","320G"));

Console.WriteLine(ShowComputer(disk: "320G", cpu: "i3 370M", ram: "2G"));

Console.Read();

}

 

private static string ShowComputer(string cpu, string ram, string disk)

{

return "My computer ... \nCpu:" + cpu + "\nRam:" + ram + "\nDisk:" + disk + "\n";

}

特殊类型

隐式类型 var
var a=1; //int a=1;

var b=“123”; //string b=“123”;

var myObj=new MyObj(); //MyObj myObj=new MyObj();

使用var声明一个变量(并给变量赋值),完全不用指定变量的类型,编译器便会根据变量的值,推导出变量的类型。
匿名类型
创建一个对象时,不一定先要定义对象的类型。
例如,在MySchool中,查询各年级的学生总数
s1 12
s2 20
s3 40
创建匿名类型数组

var oddsAndEnds = new[]{

new {Name="MVC" , Category="Pattern"},

new {Name="Hat" , Category="Clothing"},

new {Name="Apple" , Category="Fruit"}

};

new关键字之后,直接定义属性,并为这些属性赋值。而且,对象创建出来之后,在创建对象的方法中,还可以畅通无阻的访问对象的属性。这便是所谓的匿名类型对象的创建
dynameic(动态)类型
我们平时定义一个int i=1是静态类型,静态类型就是我们在没有编译的时候已经明确的知道他是一个int类型,动态语言是我们在运行时才会知道的类型。在编写动态类型的时候无法使用vs的智能提示。

class Person

{

public string Name { get; set; }

}

class Program

{

static void Main(string[] args)

{

dynamic c = new Person();

c.Name = "abc";

c.Age = 30; //编译时不报错,运行时报错

Console.WriteLine(c.Name);

}

}

Dynamic类型的实例和其他类型的实例间的转换是很简单的,直接赋值即可。

dynamic d1 = 7;

dynamic d2 = "a string";

dynamic d3 = System.DateTime.Today;

   

int i = d1;

string str = d2;

DateTime dt = d3;

可空类型
语法:System.NullAble<类型>变量名
例如 System.NullAblenum1; 简便写法为 int?num1;

int? num1=null;

int num2 = num1.HasValue ? Num1 : 0 ;
//可简写为 int num2=num1??num:0;

上面例子中,定义了一个整数可空类型,并赋空值。
HasValue 枚举类型 判断可空类型是否为空,如果不为空,retun true,else return false

特殊方法

扩展方法
扩展方法,一种特殊的静态方法,能够向现有类型“添加”新的方法,但可以像扩展类型上的实例方法一样进行调用。
判断字符串类型的Email是否符合规范

using System.Text.RegularExpressions; //正则表达式命名空间

namespace Extension_Method

{

//类必须为static的

public static class StringHelper

{

//扩展方法必须为静态的

//扩展方法的第一个参数必须由this来修饰(第一个参数是被扩展的对象)

public static bool isEmail(this string _string)

{

return Regex.IsMatch(_string,

@"^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$");

}

}

public static void main(string[] args)

{

string str = "czx@123.com";

Console.WriteLine(str.isEmail()); //调用

}

}

泛型方法
在c#中,泛型方法是通过泛型来约束方法中的参数类型,亦可理解为对数据类型设置了参数。
使用前:
如果没有泛型,每次方法中的参数类型都是固定的,不能随意更改。
使用后
在使用泛型后,方法中的数据类型则有指定的泛型来约束,即可以根据提供的泛型来传递不同类型的参数。

static void Main(string[] args)

{

//将T设置为double类型

Add<double>(3.3, 4);

//将T设置为int类型

Add<int>(3, 4);

}

//加法运算

private static void Add<T>(T a, T b)

{

double sum = double.Parse(a.ToString()) + double.Parse(b.ToString());

Console.WriteLine(sum);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值