博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【c#基础知识大盲扫1】
阅读量:5151 次
发布时间:2019-06-13

本文共 5424 字,大约阅读时间需要 18 分钟。

1拉姆达表达式的使用

//拉姆达输出集合值//时间:2013-1-2 13:54:40;//作者:白宁超 List
list = new List
{ "hello", "luo", "fei" }; list.ForEach(a => Console.WriteLine(a));

 a表示参数,利用list.ForEach可以更加明了化,体现拉姆达表达式的简洁性。


 

2比较等值问题

View Code
1             //比较等值问题2             //时间:2013-1-2 13:54:40;3             //作者:白宁超4             StringBuilder c = new StringBuilder("AAA");5             StringBuilder d = new StringBuilder("AAA");6             Console.WriteLine(c == d); //false          7             Console.WriteLine(c.Equals(d));//true8             Console.ReadLine();

==返回两个对象的比较,而Equals是对象返回字符串的比较


3   //简化属性

    //时间:2013-1-2 13:54:40;
    //作者:白宁超

class Class1    {        private string name;        public string Name        {            get { return name; }            set { name = value; }        }        //public string name { get; set; }//与上面效果一样          }

 main函数:

static void Main(string[] args)        {            Class1 c1 = new Class1();            //c1.Name = "白宁超";//输出白宁超            c1.Name = "张三";//输出张三            Console.WriteLine(c1.Name);        }

 public string name { get; set; }具体get和set属于托管运行的


 

4   操作委托

    时间:2013-1-2 13:54:40;
    作者:白宁超

class Class1    {        public delegate void something(int a); //定义方法委托        public void DoIt(int a)//构造参数化方法        {            Console.WriteLine(a);        }        public void HowtoDo(something doMethod, int a)//构造委托方法和参数        {            doMethod(a);        }       }

 

static void Main(string[] args)        {            Class1 c1 = new Class1();            c1.HowtoDo((c1.DoIt), 10);//10            int x = 10;            //使用匿名委托            c1.HowtoDo(delegate(int a)            {                Console.WriteLine(a + x);//20            }, 10);            //使用lamda表达式            c1.HowtoDo(a => Console.WriteLine(a + x), 10);//20            c1.HowtoDo((c1.DoIt),10);//20            c1.HowtoDo(delegate(int a)            {                Console.WriteLine(a);//20            }, 10);            Console.ReadKey();        }

 定义委托后,可以构造多类型的方法,调用必须调用带委托委托方法的方法。也可与拉姆达配合使用。委托在处理事务上灵活性更好


 

5      //using==try finally

        //时间:2013-1-2 13:54:40;
        //作者:白宁超

static void Main(string[] args)        {            StreamWriter sw = null;            //对文件的写操作            try            {                FileStream steam = new FileStream(@"D:\123.txt", FileMode.Create);                sw = new StreamWriter(steam);                Console.WriteLine("留言板:");                string liuyan = Console.ReadLine();abc                sw.WriteLine(liuyan);                sw.WriteLine("留言完成!");            }            finally            {                if (sw != null) sw.Dispose();            }            //对文件的读操作            try            {                FileStream steam = new FileStream(@"D:\abc.txt", FileMode.Open);                StreamReader reader = new StreamReader(steam, Encoding.GetEncoding("UTF-8"));                string str = reader.ReadToEnd();                Console.WriteLine(str);//显示abc 留言完成  读取结束                Console.WriteLine("读取结束!");                reader.Close();                steam.Close();            }            finally            {            }        }

 下面使用using执行后与try。。。finally效果一样

static void Main(string[] args)        {            //对文件写操作            using (var sw = new StreamWriter(@"D:\abc.txt"))            {                Console.WriteLine("留言板:");                string liuyan = Console.ReadLine();                sw.WriteLine(liuyan);                sw.WriteLine("留言完成!");            }            //对文件读操作            using (var rd = new StreamReader(@"D:\abc.txt"))            {                string str = rd.ReadToEnd();                Console.WriteLine(str);                Console.WriteLine("读取完毕");            }            Console.ReadKey();        }

 using具有自动关闭释放资源的作用,在数据库操作时也是经常使用的


 

 6类型实例化语法

    时间:2013-1-2 13:54:40;
    作者:白宁超

class Class1    {        public int ID { get; set; }        public string Name { get; set; }        public int Age { get; set; }    }

 

static void Main(string[] args)        {            var c1 = new Class1            {                ID = 1,                Name = "bainingchao",                Age = 22,            };            Console.WriteLine("{0}\n{1}\n{2}", c1.ID, c1.Name, c1.Age);            Console.ReadKey();        }

 

7//扩展方法正则验证是否数字

  //时间:2013-1-2 13:54:40;
  //作者:白宁超

//正则表达式验证是否输入数字    public  class StringExt    {        private Regex regexNumber = new Regex("\\d+");        public bool IsNumber(string input)        {            if (string.IsNullOrEmpty(input))            {                return false;            }            return regexNumber.IsMatch(input);        }    }

 

static void Main(string[] args)        {            StringExt se = new StringExt();            string input = Console.ReadLine();            Console.WriteLine(se.IsNumber(input));            Console.ReadLine();        }

 Regex表示不可变的正则表达式


static void Main(string[] args)        {            string str1 = "789";            string str2 = "789";            Console.WriteLine(Object.ReferenceEquals(str1, str2));//确定是否具有相同的实例true            string str3 = "7" + "8" + "9";            Console.WriteLine(Object.ReferenceEquals(str1, str3));//true            char[] chars = new char[] { '7', '8', '9' };            string str4 = new string(chars);            Console.WriteLine(object.ReferenceEquals(str1, str4));//false            Console.ReadLine();        }

 

转载于:https://www.cnblogs.com/baiboy/archive/2013/01/04/2844592.html

你可能感兴趣的文章
BZOJ2243 洛谷2486 [SDOI2011]染色 树链剖分
查看>>
centos 引导盘
查看>>
JS绘制曲线图
查看>>
Notes of Daily Scrum Meeting(12.8)
查看>>
Ubuntu 16.04中安装谷歌Chrome浏览器
查看>>
css3种方法实现元素的绝对居中
查看>>
在Eclipse中查看JDK类库的源代码
查看>>
API第二讲
查看>>
架构模式中的Active Record和Data Mapper
查看>>
linux每日命令(32):gzip命令
查看>>
layui 在实例中设置了 id 下面的table id 就应使用设置的id ,否则获取不到值
查看>>
第三次作业
查看>>
Apriori算法
查看>>
UGUI 事件穿透规则
查看>>
onlevelwasloaded的调用时机
查看>>
求出斐波那契数组
查看>>
Vue.js 基础学习之组件通信
查看>>
Java程序员的成长之路
查看>>
lr_start_transaction/lr_end_transaction事物组合
查看>>
那些React-Native踩过的的坑
查看>>