设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

那些年我们追过的C#奇葩关键字——忐忑

2013-9-12 15:14| 发布者: 红黑魂| 查看: 2424| 评论: 2|原作者: 书洞里的猫|来自: 博客园

摘要: 说到中国的歌坛,不能光说张学友这种大咖吧,我看那些怪咖更给力,比如我们的龚琳娜童鞋,一首神曲《忐忑》唱的那叫不可收拾,而且听到的改编版本更多,每一次都是心怀忐忑,就像C#里的那些关键字说到这些关键字,我 ...

12、=>

Lambda表达式的运算符是=>,运算符左边列举出了需要的参数,右边定义了赋予Lambda变量的方法的实现代码

复制代码
List<User> user = new List<User>{ new User{Id=1,Name="LiSi",Age=22},  new User{Id=2,Name="ZhangSan",Age=25} }; 
//获取特定人时所用的过滤条件,p参数属于User类型  
var results = user.Where(p => p.Name == "LiSi").ToList();  //用User对象的Age值计算平均年龄  
var average = user.Average(p => p.Age); 
复制代码

13、ref

 ref 关键字使参数按引用传递,也就是说它能够让你直接对原数进行操作,而不是对那个原数的Copy进行操作。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字,而且传递到 ref 参数的参数必须最先初始化,例如:

复制代码
class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val); // val is now 44    
}
}
复制代码

14、out

out是传出参数,与ref有点像,但偏重于输出,而且不用初始化,通过执行使用out参数的方法逻辑,out后面的数接受并返回这个值,比如你写一个方法返回dataset,同时你还想返回页数,怎么办?方法一般不能返回多个值啊,这个时候out就可以返回多个值,是不是很爽,你需要多个值得时候别忘了out这厮啊

复制代码
public DataSet getData(out int count) 
{ 
    dataset ds=bll.getdata(10,20); 
获取第11条到第20条数据,但是不可能只显示共有10条记录吧,那么我们就可以用out了 
    int rcount=bll.GetCount();//比方说这个是取总记录数的
    count=rcount; 

    return ds; 
} 

//显示的时候 

public void showdata() 
{ 
    int count=0; 

    gridview1.datasource=getData(out count); 
    gridview1.databind(); 
   label1.text="共有"+count.tostring()+"条记录"; 
} 
复制代码

15、params

params主要的用处是在给函数传参数的时候用,就是当函数的参数不固定的时候。在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字!

注意事项:

(1)若形参表中含一个参数数组,则该参数数组必须位于形参列表的最后;

(2)参数数组必须是一维数组;

(3)不允许将params修饰符与ref和out修饰符组合起来使用;

(4)与参数数组对应的实参可以是同一类型的数组名,也可以是任意多个与该数组的元素属于同一类型的变量;

(5)若实参是数组则按引用传递,若实参是变量或表达式则按值传递。

(6)用法:可变的方法参数,也称数组型参数,适合于方法的参数个数不知的情况,用于传递大量的数组集合参数;当使用数组参数时,可通过使用params关键字在形参表中指定多种方法参数,并在方法的参数表中指定一个数组,形式为:方法修饰符 返回类型 方法名(params 类型[] 变量名)

如带有参数的SQL 语句,不同的表的字段数量也不同,当你更新修改的时候就可以用params

 16、using

这个再也熟悉不过了,常见三种用法

(1)引用命名空间,例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

(2)创建别名(类或者命名空间的别名)

复制代码
using MyControle=System.Console;
class UsingEx
{
   public static void Main()
   {
    MyConsole.WriteLine("应用了类的别名");
    }
}
复制代码

(3)自动清理资源

using (SqlConnection conn = new SqlConnection(_connstr))
//这样你就不用手工清理连接资源了

17、this

(1)表示当前实例

(2)索引器关键字

(3)隐藏父类同名方法的关键字

(4)扩展方法的关键字

也没什么难的,多用用就会了

那些年我们追过的奇葩关键字远不止这些,真是浪花一朵朵,我也只是想到了这些,真碰到没见过的,查查也就知道了,没必要纠结,想必看完了这篇大家依然很忐忑,其实也不是坏事,呵呵,说明咱们的求知欲很强烈啊,我也只能说继续忐忑,继续加油,最后依然忐忑,因为你在忐别的忑啊~


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部