1.类型转化在C#中有很多,常用的是int类型转string等,这些都有微软给我们定义好的,我们需要的时候直接调用就是了,这是值类型中的转化,有时候我们还会需要类类型(包括结构struct)的转化,还记得在继承中,子类可以隐式转化成父类,这是因为他们之间的继承关系.若是两个没有关系的类之间要进行转化的话就需要自定义类型转化.自定义的类型转化必须为静态类型,需要explicit关键字或者implicit关键字以及operator关键字格式大体上是:访问修饰符 static implicit/exp…
一.隐式类型var 从 Visual C# 3.0 开始,在方法范围中声明的变量可以具有隐式类型var.隐式类型可以替代任何类型,编译器自动推断类型. 1.var类型的局部变量必须赋予初始值,包括匿名类(初始值不能为null). var s="c#"; }; 2.隐式类型的数组 };//int[] a=new int[]{1,10,100} ,,},,,}}//交错数组也可用new[]初始化,不支持隐式类型的多位数组. 3.var 只能作为局部变量使用,即可只能定义在方法内或在属性ge…
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/strengthen/p/10235470.html ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章…
对于一个动态类型来说,你可以认为它包含任意成员,它们都能通过编译.但到了运行时,到底是否拥有这些成员,就真相大白了.如 dynamic test = ; Console.Write(test.Name); 编译器无法在编译时知道test的真正类型,因此会使用其运行时的实际类型,而默认对于它的所有调用都是合法的,不会引发任何编译时错误.但它会抛出一个运行时异常.因为在运行时,test为一个int,它不具备Name属性. 在编译时,编译器会根据会生成一些调用所需的上下文环境,如所有已知的静态类型等.…
建议101:使用扩展方法,向现有类型“添加”方法 考虑如何让一个sealed类型具备新的行为.以往我们会创建一个包装器类,然后为其添加方法,而这看上去一点儿也不优雅.我们也许会考虑修改设计,直接修改sealed类型,然后为其发布一个新的版本,但这依赖于你拥有全部的源码.更多的时候,我们会采取针对第三方公司提供的API进行编程的方式.对于我们来说,FCL是一组第三方公司(微软)提供给我们的最好的API. 包装类的编码形式如下: class Program { static void Main(st…
以时间转换为案例: //声明接口,也是在声明date这个基础类型要定义一个format的扩展方法,不写接口声明会报错 interface Date { Format(fmt:string):string; } //要写到class类的外面,不然会划红线报错 Date.prototype.Format = function (fmt) { //author: meizz var o = { , //月份 "d+": this.getDate(), //日 "H+":…
040_字符串连接符 package test_package; /** * 字符串运算符 * @author * */public class TestOperator05 { public static void main(String[] args) { String a = "3"; int b = 4; int c = 5; char d = 'a'; System.out.println(a+b+c);//因为3是字符串,后面都是字符串连接 System.out.print…
LINQ方法实际上是对IEnumerable<TSource>的扩展,如图:   本篇自定义一个MyWhere方法,达到与Where相同的效果.     使用LINQ自带的Where方法 class Program { static void Main(string[] args) { List<int> list = new List<int>(){1, 2, 3}; IEnumerable<int> query = list.Where(x =>…
写了一个基于System.IO.Path类型方法的扩展类型,用于快速对文件系统路径进行操作.如下图: 其中有许多方法就是直接调用Path类型的静态方法.比如AppendPath方法内部会直接调用Path.Combine.这些方法就不需要再介绍了.下面看一些许多说明的方法: ToDirectory方法会把一个文件路径放到文件夹路径内并返回结果,比如: var path =@"C:\a\b\c.jpg"; Console.WriteLine(path.ToDirectory(@"…
Asp.net 面向接口可扩展框架的“类型转化基础服务”是我认为除了“核心容器”之外最为重要的组成部分 但是前面博文一出,争议很多,为此我再写一篇类型转化基础服务和各种Mapper结合的例子,顺便对各种Mapper做个简单的优缺点对比 我对第三方组件评介有三个标准,一.可用性,二.性能,三.易用性 本例子中四种Mapper以前我都没使用过(因为以前我都用自己的Mapper),本次测试可能不准确,错误的地方请大家指正 AutoMapper使用的是4.2.1.0,需要.net4.5支持(我使用Nug…