小编xyz*_*xyz的帖子

在序列化对象时如何忽略事件订阅者?

当使用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:用问题的形式说出来.

.net c# events serialization binaryformatter

14
推荐指数
1
解决办法
2983
查看次数

最大定时器间隔

计时器的最大间隔为2,147,483,647.这是大约25天.但根据我的要求,我需要计时器等待30天.我该如何解决?请帮忙.

.net c#

14
推荐指数
3
解决办法
2万
查看次数

为什么不从UTF8Encoding.GetBytes发出字节顺序标记?

片段说明了一切:-)

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)

.net c# unicode encoding utf-8

13
推荐指数
2
解决办法
2769
查看次数

如何在.NET中动态调用类的方法?

如何将类和方法名称作为字符串传递并调用该类的方法?

喜欢

void caller(string myclass, string mymethod){
    // call myclass.mymethod();
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c# reflection

13
推荐指数
2
解决办法
2万
查看次数

Sinatra:提供普通旧文件的正确方法是什么?

这是有效的,但它是在黑暗中刺伤.我知道Ruby很少.

为给定资源提供普通旧文件的可接受方式是什么?

get '/xyz' do
    File.read 'abc.html'
end
Run Code Online (Sandbox Code Playgroud)

ruby sinatra

13
推荐指数
1
解决办法
6127
查看次数

为什么必须有人订阅事件发生?

代码之前的一些文本,以便问题摘要不会被破坏.

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关键字与标准委托区分开来.语言设计师为什么没有设置它们在没有订阅者的情况下默默地射入虚空?(我收集你可以通过显式添加一个空委托手动完成此操作).

c# events

12
推荐指数
2
解决办法
706
查看次数

Visual Studio开发人员的Xcode快速入门

我想使用Apple的Xcode IDE在OS X上开发应用程序,但我发现UI非常令人困惑,因为我习惯在Windows上使用Visual Studio进行开发.

有没有人知道Visual Studio开发人员的任何Xcode快速入门指南,它们将常见任务和功能从一个映射到另一个?

例如,我甚至无法弄清楚如何启动在新的shell窗口(Terminal.app)中编写的C/C++命令行工具,即如果在Visual Studio中按F5会发生什么.

macos xcode visual-studio

11
推荐指数
1
解决办法
5346
查看次数

推荐的Clang命令行选项

该手册为锵似乎是正在进行的工作,所以你可以帮我制定具有最大严格,相关的/有用的警告编译ANSI-C(AKA C89,C90)的权威命令行选项?

Clang是C,C++和Objective-C编程语言的编译器前端.它使用低级虚拟机(LLVM)作为后端.它仍在开发中.它的目标是提供GNU编译器集合(GCC)的替代品

c clang c89

10
推荐指数
1
解决办法
5847
查看次数

编辑基础DataTable时推迟DataGridView更新

如果你有一个绑定到DataView的DataGridView(someDataTable.DefaultView).

..并且从代码对基础DataTable中的行执行许多编辑.

是否可以推迟更新DataGridView,直到您决定完成编辑行为止?

实际上,DataGridView在每次编辑后都会更新,如果您不需要即时反馈,那么如果您一个接一个地更新DataTable中的许多行,那么效率很低,并且会有一些视觉冲突.

.net c# ado.net datagridview winforms

9
推荐指数
1
解决办法
4574
查看次数

计算文本文件中的行数是否有任何技巧?

假设您有一个文本文件 - 确定该文件中文本行数的最快和/或最有效的内存方式是什么?

是否只是逐个字符地扫描它并寻找换行符?

.net c# windows text text-files

8
推荐指数
3
解决办法
1174
查看次数