如何在剪贴板中保存我们自定义的对象呢?
利用对象的序列化和反序列化就可以啦
public void CopyToClipboard(MyObj obj)
{
StringBuilder str = new StringBuilder(obj.Serialize());
MemoryStream stream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, xmldoc);
Clipboard.SetData(DataFormats.Serializable, stream);
}
public void PasteFromClipboard()
{
MemoryStream stream = Clipboard.GetData(DataFormats.Serializable) as MemoryStream;
BinaryFormatter formatter = new BinaryFormatter();
MyObj obj = new MyObj();
obj. Deserialize(((StringBuilder)formatter.Deserialize(stream)).ToString());
}
Monday, February 2, 2009
Monday, November 17, 2008
C#的基本概念
1.静态变量和非静态变量的区别?
2.const 和 static readonly 区别?
3.extern 是什么意思?
4.abstract 是什么意思?
5.internal 修饰符起什么作用?
6.sealed 修饰符是干什么的?
7.override 和 overload 的区别?
8.什么是索引指示器?
9.new 修饰符是起什么作用?
10.this 关键字的含义?
11.可以使用抽象函数重写基类中的虚函数吗?
12.密封类可以有虚函数吗?
13.如果基类中的虚属性只有一个属性访问器,那么继承类重写该属性后可以有几个属性访问器?如果基类中有get和set两个呢?
14.abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
15.接口可以包含哪些成员?
16.类和结构的区别?
17.接口的多继承会带来哪些问题?
18.抽象类和接口的区别?
19.别名指示符是什么?
20.如何释放非托管资源?
21.P/Invoke是什么?
22.StringBuilder 和 String 的区别?
23.explicit 和 implicit 的含义?
24.params 有什么用?
25.什么是反射
2.const 和 static readonly 区别?
3.extern 是什么意思?
4.abstract 是什么意思?
5.internal 修饰符起什么作用?
6.sealed 修饰符是干什么的?
7.override 和 overload 的区别?
8.什么是索引指示器?
9.new 修饰符是起什么作用?
10.this 关键字的含义?
11.可以使用抽象函数重写基类中的虚函数吗?
12.密封类可以有虚函数吗?
13.如果基类中的虚属性只有一个属性访问器,那么继承类重写该属性后可以有几个属性访问器?如果基类中有get和set两个呢?
14.abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
15.接口可以包含哪些成员?
16.类和结构的区别?
17.接口的多继承会带来哪些问题?
18.抽象类和接口的区别?
19.别名指示符是什么?
20.如何释放非托管资源?
21.P/Invoke是什么?
22.StringBuilder 和 String 的区别?
23.explicit 和 implicit 的含义?
24.params 有什么用?
25.什么是反射
Wednesday, September 3, 2008
Google Chrome
Thursday, July 10, 2008
C#中隐藏类属性
当对象设置为PropertyGrid.SelectObject的对象时,可使用下面的方法隐藏部分属性:
void SetPropertyVisible(object obj, string propertyName, bool visibles){
Type type = typeof(System.ComponentModel.BrowsableAttribute);
PropertyDescriptor propDesc = TypeDescriptor.GetProperties(obj)[propertyName];
Attribute attr = propDesc.Attributes[type];
FieldInfo fieldInfo = type.GetField("browsable", BindingFlags.Instance BindingFlags.NonPublic);
fieldInfo.SetValue(attr, visible);
}
需要注意的是,定义类属性时,要将所有的属性都标记Browsable属性。
[Browsable(true)]
[ReadOnly(false)]
public string String1{
get { return this.string1; }
set { this.string1 = value; }
}
同样的也可以通过上面的方法设置属性是否只读,只需更改2行代码:
Type type = typeof(System.ComponentModel.ReadOnlyAttribute);
FieldInfo fieldInfo = type.GetField("isReadOnly", BindingFlags.Instance BindingFlags.NonPublic);
Wednesday, July 9, 2008
Protocol Buffers: Google's Data Interchange Format
Google本周一发布了该公司内部使用的开放源代码数据描述语言Protocol Buffers.Protocol Buffers与XML相似,但更简单、更小、更快.
谷歌的文档称,与具有可比性的XML文件相比,Protocol Buffers文件的尺寸要小3-10倍,解析速度要快20-100倍.
希望能果真如此,感谢Google所做的贡献。
谷歌的文档称,与具有可比性的XML文件相比,Protocol Buffers文件的尺寸要小3-10倍,解析速度要快20-100倍.
希望能果真如此,感谢Google所做的贡献。
Subscribe to:
Posts (Atom)

