摘要: 在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法。 C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方式。 不过,本主题中有关匿名方法的信息同样也适用于 Lambda 表达式。 有一种情况下,匿名方法提供了 阅读全文
posted @ 2016-07-16 15:17 如.若 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 匿名函数是一个“内联”语句或表达式,可在需要委托类型的任何地方使用。 可以使用匿名函数来初始化命名委托,或传递命名委托(而不是命名委托类型)作为方法参数。 C# 中委托的发展 在 C# 1.0 中,您通过使用在代码中其他位置定义的方法显式初始化委托来创建委托的实例。 C# 2.0 引入了匿名方法的概 阅读全文
posted @ 2016-07-16 14:47 如.若 阅读(3545) 评论(0) 推荐(0) 编辑
摘要: 索引器可在 接口(C# 参考) 上声明。接口索引器的访问器与类索引器的访问器具有以下方面的不同: 接口访问器不使用修饰符。 接口访问器没有体。 因此,访问器的用途是指示索引器是读写、只读还是只写。以下是接口索引器访问器的示例: 一个索引器的签名必须区别于在同一接口中声明的其他所有索引器的签名。下面的 阅读全文
posted @ 2016-07-16 14:41 如.若 阅读(1160) 评论(0) 推荐(0) 编辑
摘要: 索引器允许类或结构的实例就像数组一样进行索引。 索引器类似于属性,不同之处在于它们的取值函数采用参数。 在下面的示例中,定义了一个泛型类,并为其提供了简单的 get 和 set 取值函数方法(作为分配和检索值的方法)。 Program 类创建了此类的一个实例,用于存储字符串。 表达式主体定义 直接只 阅读全文
posted @ 2016-07-16 14:35 如.若 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。下表列出了六种类型的约束: 使用约束的原因 如果要检查泛型列表中的某个项以确定它是 阅读全文
posted @ 2016-07-16 14:27 如.若 阅读(34604) 评论(0) 推荐(2) 编辑
摘要: 泛型方法是使用类型参数声明的方法,如下所示: 下面的代码示例演示一种使用 int 作为类型参数的方法调用方式: 也可以省略类型参数,编译器将推断出该参数。下面对 Swap 的调用等效于前面的调用: 相同的类型推理规则也适用于静态方法和实例方法。编译器能够根据传入的方法实参推断类型形参;它无法仅从约束 阅读全文
posted @ 2016-07-16 14:10 如.若 阅读(32931) 评论(1) 推荐(1) 编辑
摘要: 将泛型类型或方法编译为 Microsoft 中间语言 (MSIL) 时,它包含将其标识为具有类型参数的元数据。 泛型类型的 MSIL 的使用因所提供的类型参数是值类型还是引用类型而不同。 第一次用值类型作为参数来构造泛型类型时,运行时会创建专用泛型类型,将提供的参数代入到 MSIL 中的适当位置。  阅读全文
posted @ 2016-07-16 14:04 如.若 阅读(844) 评论(0) 推荐(0) 编辑
摘要: 委托可以定义自己的类型参数。引用泛型委托的代码可以指定类型参数以创建已关闭的构造类型,就像实例化泛型类或调用泛型方法一样,如下例所示: C# 2.0 版具有称为方法组转换的新功能,此功能适用于具体委托类型和泛型委托类型,并使您可以使用如下简化的语法写入上一行: 在泛型类内部定义的委托使用泛型类类型参 阅读全文
posted @ 2016-07-16 13:57 如.若 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T: T 是引用类型还是值类型。 如果 T 为值类型,则它是数值还是结构。 T 是引用类型还是值类型。 如果 T 为值类型,则它是数值还是结构。 给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语 阅读全文
posted @ 2016-07-16 13:53 如.若 阅读(9818) 评论(0) 推荐(0) 编辑
摘要: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Channels; using System.Reflection; namespace wcf.wcfbase {... 阅读全文
posted @ 2016-07-16 11:27 如.若 阅读(2404) 评论(0) 推荐(1) 编辑
摘要: 如何使用 1、第一种方式比较简单,而且也是大家喜欢的,因为不需要任何配置文件就可解决,只需知道服务契约接口和服务地址就可以调用。 2、使用Invoke的方式,但是需要在调用客户端配置WCF,配置后在Invoke类里封装服务契约接口即可。 第一种调用方式 第二种调用方式 阅读全文
posted @ 2016-07-16 11:04 如.若 阅读(4637) 评论(0) 推荐(0) 编辑
摘要: 很多时候,服务地址都不止一个的,这个时候就要动态去配置地址。配置Web.config,很麻烦 下面就看看怎样实现动态调用WCF。 阅读全文
posted @ 2016-07-16 10:54 如.若 阅读(677) 评论(0) 推荐(0) 编辑
摘要: ChannelFactory 类 一个创建不同类型通道的工厂,客户端使用这些通道将消息发送到不同配置的服务终结点。 命名空间: System.ServiceModel 语法 public class ChannelFactory : ChannelFactory, IChannelFactory, IChannelFactory, ICommunicationObject ... 阅读全文
posted @ 2016-07-16 10:38 如.若 阅读(661) 评论(0) 推荐(1) 编辑