2012年11月18日

摘要: C#允许属性像字段那样使用属性,只是不允许将他们作为ref和out参数值来传递。ref和out在内部实现时,需要传递内存地址给目标方法。但是,由于属性可能是没有支持字段的需字段,也有可能是只读/只写的,因此不可能传递其基础存储的地址。这里,Name就作为虚字段使用。 class Employee { private string _FirstName; public string FirstName { get { return _FirstName; } set { _FirstName = v... 阅读全文
posted @ 2012-11-18 01:50 Scarface 阅读(694) 评论(0) 推荐(0) 编辑

2012年7月19日

摘要: 什么是类型传递?类型传递是一个属性(在TypeForwardedTo中实现),它允许你将一个类型从一个程序集(程序集A)移动到另一个程序集(程序集B),并且在客户端实例化程序集A时不需要重新编译,就可以运行。在一个组件(程序集)载入并被客户端应用程序使用后,你可以用类型传递将组件中一个类型移动到另一个程序集,而客户端应用程序仍将保持工作,不需要重新编译。类型传递只能使用在从已存在的应用程序引用的组件。当你重新编译一个应用程序时,在应用程序中使用的任何类型都必须是恰当的程序集引用(这个程序集已存在)。下面这些步骤用来将一个类型从一个类库移动到另一个。1.添加一个TypeForwardedTo属性 阅读全文
posted @ 2012-07-19 17:14 Scarface 阅读(957) 评论(0) 推荐(1) 编辑

2012年5月24日

摘要: 最下层蓝色部分是.NET Framework的基础,也是所有应用软件的基础。.NET Framework不是凭空出来的,实际上API,COM+,和一些相关驱动依然是它的基石。.NET Framework只不过是对这些前辈们进行了系统的封装和扩充,在这个过程中,吸取了Java框架的很多经验。关于Win32 API与.NET Framework API的对应关系,可以参考Microsoft Win32 to Microsoft .NET Framework API Map 菜谱:除了蓝色部分以外,其他均为.NET Framework的主体。它是基于通用语言基础架构(Common Languag.. 阅读全文
posted @ 2012-05-24 11:38 Scarface 阅读(397) 评论(0) 推荐(0) 编辑

2012年3月12日

摘要: XAML是一种声明性标记语言,是eXtensible Application Markup Language的缩写。一.XAML为元素设置属性,有以下几种方式:1.XML特性语法:<Button Background="Blue" Foreground="Red" Content="This is a button"/>2.属性元素法:<Button> <Button.Background> <SolidColorBrush Color="Blue"/> </B 阅读全文
posted @ 2012-03-12 21:31 Scarface 阅读(296) 评论(0) 推荐(0) 编辑

2011年12月20日

摘要: 1.Silverlight 双工目前只支持: a.通过HTTP进行双工通信:PollingDuplexHttpBinding提供 b.通过TCP进行双工通信:NetTcpBinding,并且只支持不具备安全性的NetTcpBinding,为此必须添加一个<netTcpBinding> 元素,该元素带有一个嵌套的 <security> 元素(其 mode 设置为 None)。2.IIS7以下不支持nettcp,IIS7以及以上就能支持,所以silverlight访问wcf的时候,要想使用双工的nettcp,就不能寄宿在IIS里面。 阅读全文
posted @ 2011-12-20 15:06 Scarface 阅读(223) 评论(0) 推荐(0) 编辑

2011年12月4日

摘要: 1. 打卡VS2010添加一个 wcf类库模板.2.在默认个IService1这个契约接口添加一个新的接口IService1Callback 用于服务端调用客户端方法 public interface IService1Callback { [OperationContract(IsOneWay = true)] void Equal(string a); }3.修改IService1接口中 默认的服务器端接口的属性 添加一个CallbackContract的属性和SessionMode的属性[ServiceContract(CallbackCon... 阅读全文
posted @ 2011-12-04 20:24 Scarface 阅读(492) 评论(0) 推荐(0) 编辑

2011年7月12日

摘要: 两个类的定义:public class Employee { public Int32 GetYearsEmployed() { return 5; } public virtual String GenProgressReport() { return ""; } public static Employee Lookup(String name) { return new Manager(); } } public class Manager : Employee { public override string GenProgressReport() { return 阅读全文
posted @ 2011-07-12 23:38 Scarface 阅读(501) 评论(2) 推荐(0) 编辑

2011年7月10日

摘要: CLR是类型安全性的,在运行时,CLR总是知道一个对象是什么类型。调用GetType就可以知道这个对象的确切类型。C#不要求任何特殊语法即可将一个对象转换为它的任何基类,因为向基类的转换被认为是一种安全的隐式转换。然而,将对象转换为它的某个派生类型时,C#要求只能进行显示转换(强制转换),因为这样的转换可能在运行的时候失败。可以使用is和as操作符来转型:1.使用is,只是检查对象是否兼容于指定的类型,只返回true或者false。如果是true还需自己转换一次类型。2.使用as,CLR会核实对象是否兼容指定的类型;如果是,就返回对同一个对象的非null引用;如果不是,就返回null。所以使用 阅读全文
posted @ 2011-07-10 22:12 Scarface 阅读(266) 评论(2) 推荐(0) 编辑
摘要: 1.计算类型以及所有基类(一直到System.Object)中定义的所有实例字段所需要的字节数。堆上每个对象都需要一些额外的成员---“类型对象指针”(type object pointer)和“同步索引块”(sync block index)。这些额外的成员的字节数也会计入对象大小。2.从托管堆中分配指定类型要求的字节数,从而分配对象的内存,分配的所有字节都设置为零。3.初始化对象的“类型对象指针”和“同步索引块”成员。4.调用类型的实例构造器,向起传入在对new的调用中指定的任何实参。大多数编译器都在构造器中自动生成代码来调用一个基类构造器。每个类型的构造器在调用时,都要负责初始化由这个类 阅读全文
posted @ 2011-07-10 18:43 Scarface 阅读(336) 评论(0) 推荐(0) 编辑

2011年7月4日

摘要: 1. CREATE OR REPLACE TYPE mytable AS TABLE OF varchar2(500);2. 方法:CREATE OR REPLACE FUNCTION SEND_SPLIT (src VARCHAR2, delimiter varchar2) RETURN mytable IS psrc VARCHAR2(500); a mytable := mytable(); i NUMBER := 1; j NUMBER := 1; BEGIN psrc := RTrim(LTrim(src, delimiter), delimiter); LOOP i := InSt 阅读全文
posted @ 2011-07-04 10:48 Scarface 阅读(12214) 评论(2) 推荐(0) 编辑

导航