当使用a序列化以下类时BinaryFormatter,任何订阅该Roar事件的对象也将被序列化,因为对这些对象的引用由EventHandler委托保存.
[Serializable]
public class Lion
{
public event EventHandler Roar;
public string Name { get; set; }
public float Fluffiness { get; set; }
public Lion(string name, float fluffiness)
{
Name = name;
Fluffiness = fluffiness;
}
public void Poke()
{
Roar(); // Could be null, etc..
}
}
Run Code Online (Sandbox Code Playgroud)
从Lion开始,您如何阻止事件订阅者被序列化为对象图的一部分?
将[NonSerializable]属性放在event将不会编译.
注意:我正在回答我自己的问题,因为我认为在网站上获取信息可能会有用!
常见问题解答:提问和回答你自己的问题也很好,但假装你正在使用Jeopardy:用问题的形式说出来.
片段说明了一切:-)
UTF8Encoding enc = new UTF8Encoding(true/*include Byte Order Mark*/);
byte[] data = enc.GetBytes("a");
// data has length 1.
// I expected the BOM to be included. What's up?
Run Code Online (Sandbox Code Playgroud) 如何将类和方法名称作为字符串传递并调用该类的方法?
喜欢
void caller(string myclass, string mymethod){
// call myclass.mymethod();
}
Run Code Online (Sandbox Code Playgroud)
谢谢
这是有效的,但它是在黑暗中刺伤.我知道Ruby很少.
为给定资源提供普通旧文件的可接受方式是什么?
get '/xyz' do
File.read 'abc.html'
end
Run Code Online (Sandbox Code Playgroud) 代码之前的一些文本,以便问题摘要不会被破坏.
class Tree
{
public event EventHandler MadeSound;
public void Fall() { MadeSound(this, new EventArgs()); }
static void Main(string[] args)
{
Tree oaky = new Tree();
oaky.Fall();
}
}
Run Code Online (Sandbox Code Playgroud)
我没有在C#中使用过很多事件,但这会导致NullRefEx的事实看起来很奇怪.EventHandler引用被认为是null,因为它当前没有subribers - 但这并不意味着事件没有发生,是吗?
EventHandlers通过event关键字与标准委托区分开来.语言设计师为什么没有设置它们在没有订阅者的情况下默默地射入虚空?(我收集你可以通过显式添加一个空委托手动完成此操作).
我想使用Apple的Xcode IDE在OS X上开发应用程序,但我发现UI非常令人困惑,因为我习惯在Windows上使用Visual Studio进行开发.
有没有人知道Visual Studio开发人员的任何Xcode快速入门指南,它们将常见任务和功能从一个映射到另一个?
例如,我甚至无法弄清楚如何启动在新的shell窗口(Terminal.app)中编写的C/C++命令行工具,即如果在Visual Studio中按F5会发生什么.
该手册为锵似乎是正在进行的工作,所以你可以帮我制定具有最大严格,相关的/有用的警告编译ANSI-C(AKA C89,C90)的权威命令行选项?
Clang是C,C++和Objective-C编程语言的编译器前端.它使用低级虚拟机(LLVM)作为后端.它仍在开发中.它的目标是提供GNU编译器集合(GCC)的替代品
如果你有一个绑定到DataView的DataGridView(someDataTable.DefaultView).
..并且从代码对基础DataTable中的行执行许多编辑.
是否可以推迟更新DataGridView,直到您决定完成编辑行为止?
实际上,DataGridView在每次编辑后都会更新,如果您不需要即时反馈,那么如果您一个接一个地更新DataTable中的许多行,那么效率很低,并且会有一些视觉冲突.
假设您有一个文本文件 - 确定该文件中文本行数的最快和/或最有效的内存方式是什么?
是否只是逐个字符地扫描它并寻找换行符?