随笔分类 - C#
C# 泛型的协变和逆变 (转载)
摘要:1. 可变性的类型:协变性和逆变性 可变性是以一种类型安全的方式,将一个对象当做另一个对象来使用。如果不能将一个类型替换为另一个类型,那么这个类型就称之为:不变量。 协变和逆变是两个相互对立的概念: 如果某个返回的类型可以由其派生类型替换,那么这个类型就是支持协变的 如果某个参数类型可以由其基类替换
阅读全文
用C#通过反射实现动态调用WebService 告别Web引用(转载)
摘要:我们都知道,调用WebService可以在工程中对WebService地址进行WEB引用,但是这确实很不方便。我想能够利用配置文件灵活调用WebService。如何实现呢? 用C#通过反射实现动态调用WebService 下面是WebService代码: 下面是客户端的代码: 注意:上述代码需要引用
阅读全文
VisualStudio编译项目时,提示bin目录和obj目录下的文件不能写的错误处理的解决办法
摘要:具体错误信息如下: Error 139 Could not write lines to file "obj\Debug\SanSuiWeb.csproj.FileListAbsolute.txt". Access to the path 'F:\三随Demo\SanSuiSolution\SanS
阅读全文
一篇很好的解释了.Net Core, .Net Framework, .Net standard library, Xamarin 之间关系的文章 (转载)
摘要:Introducing .NET Standard In my last post, I talked about how we want to make porting to .NET Core easier. In this post, I’ll focus on how we’re makin
阅读全文
C#利用反射动态创建对象 带参数的构造函数和String类型 (转载)
摘要:最近笔者有一个想法需要利用反射动态创建对象(如string,int,float,bool,以及自定义类等)来实现,一直感觉反射用不好,特别是当构造函数带参数的时候。MSDN上给出的例子十分复杂,网上的帖子则一般都说很简单,那就看看网上比较普遍的说法: 因为这段描述在很多地方都有看到,笔者也不知道原始
阅读全文
C# 4.0 不要跨程序集用dynamic指向匿名类型 (转载)
摘要:今天写代码时偷懒用了dynamic,结果遇到问题,运行时始终无法获取dynamic对象的属性。原问题简化后如下: 程序集A包含SampleClass类,有一个静态方法,接收一个dynamic类型参数并将其Value属性输出。 程序集B引用程序集A并调用Output方法: 运行结果是: "Unhand
阅读全文
C#中try catch中throw ex和throw方式抛出异常有何不同
摘要:我们在C#的try catch代码块中里面经常使用throw语句抛出捕捉到的异常,但是你知道吗使用throw ex和throw抛出捕获到的异常效果是不一样的。 异常捕捉的原理 首先先介绍一下C#异常捕捉的原理,默认情况下在C#的一个函数中(注意这里说的是在一个函数中,不是跨多个函数),只会将最后一个
阅读全文
使用C#反射中的MakeGenericType函数,来为泛型方法和泛型类指定(泛型的)类型
摘要:C#反射中的MakeGenericType函数可以用来指定泛型方法和泛型类的具体类型,方法如下面代码所示这里就不多讲了,详情看下面代码一切就清楚了:
阅读全文
C#如何反射出委托的签名,如何使用反射调用委托
摘要:本文阐述C#中如何反射出委托的签名,假如我们有委托FooDelegate定义如下 那么我们怎么用反射知道这个委托的签名是: 一个string类型的参数param、一个bool类型的参数condition和返回double类型呢? 答案很简单只要反射委托实例的Invoke方法即可: 因为每个委托都包含
阅读全文
从JAVA看C#中volatile和synchronized关键字的作用
摘要:最近一直在想C#中 volatile关键字到底是用来干什么的?查了很多.NET的文章都是说用volatile修饰的变量可以让多线程同时修改,这是什么鬼。。。 然后查到了下面这篇JAVA中关于volatile和synchronized关键字的概述,总算对volatile和synchronized关键字
阅读全文
ADO.NET中的TransactionScope何时需要启用MSTDC(分布式事务管理)
摘要:我们知道在ADO.NET中可以用TransactionScope来将多个SqlConnection(多个数据库连接)执行的Sql语句放入一个事物中提交或取消,但是使用TransactionScope的时候也要额外小心,因为TransactionScope在特殊情况下需要启动MSDTC(分布式事务管理
阅读全文
C#中Attribute的继承
摘要:在C#中Attribute是个非常有用的语法,本文不会介绍Attribute的使用方法,如果想了解Attribute的详细信息请查阅MSDN及网上相关文档。C#中的Attribute有两个地方是和继承相关的,一个地方是AttributeUsageAttribute类中的属性参数Inherited,另
阅读全文
使用Json.Net处理json序列化和反序列化接口或继承类
摘要:以前一直没有怎么关注过Newtonsoft的Json.Net这个第三方的.NET Json框架,主要是我以前在开发项目的时候大多数使用的都是.NET自带的Json序列化类JavaScriptSerializer,但是最近在项目中需要序列化和反序列化一个实现接口的类,而如果使用JavaScriptSe
阅读全文
小心C# 5.0 中的await and async模式造成的死锁
摘要:平时在使用C# 5.0中的await and async关键字的时候总是没注意,直到今天在调试一个ASP.NET项目时,发现在调用一个声明为async的方法后,程序老是莫名其妙的被卡住,就算声明为async的方法中的Task任务执行完毕后,外部方法的await调用还是阻塞着,后来查到了下面这篇文章,
阅读全文
Visual Studio中的引用项目和直接引用DLL文件
摘要:在VS中引用类库时有多种方法,其中用的最多的就是在引用时选择项目选项卡引用本解决方案下的类库项目和选择浏览选项卡直接引用类库DLL文件,实际上这两种引用方式略有不同,今天就为大家总结下。 C#本地项目(控制台,winform) 引用类库项目,这时对引用DLL类库做出任何修改会立刻生效,不用保存和生成
阅读全文
C#的Timer
摘要:在C#里现在有3个Timer类: System.Windows.Forms.Timer System.Threading.Timer System.Timers.Timer 这三个Timer我想大家对System.Windows.Forms.Timer已经很熟悉了,唯一我要说的就是这个Timer在激
阅读全文
Visual Studio 2008 远程调试
摘要:VS是支持远程调试的,这样在自己公司就可以远程调试在客户机上的程序了 VS的远程调试分为两种: 直接远程调试:这种调试方法必须在有VS项目文件下才可以使用(因为被调试机的地址要在项目文件中设置),具体内容请见:http://www.cnblogs.com/tengs2000/articles/107
阅读全文
浅析C# new和override的区别
摘要:C#中new和override是继承中经常用到的两个关键字,但是往往有时候容易把这两个关键字的作用搞混淆。 new C# new关键字表示隐藏,是指加上new关键字的属性或函数将对本类和继承类隐藏基类的同名属性或函数 对于上面这个例子来说,假如运行A a=new B();a.Method();会输出
阅读全文
接口和抽象类:Interface、abstract
摘要:一、接口 接口是C#中很常见的工具,概念什么的就不说了,这里讲几个值得注意的小地方: 1、接口内部只能有函数、属性和事件的声明: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighli
阅读全文
C#里partial关键字的作用(转载)
摘要:1. 什么是局部类型?C# 2.0 引入了局部类型的概念。局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。局部类型适用于以下情况: 类型特别大,不宜放在一个文件中实现。 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。 需要多人合
阅读全文
浙公网安备 33010602011771号