小编Dan*_*an7的帖子

过滤掉Type.GetMethods()返回的自动生成的方法(getter/setter/add/remove/.etc)

Type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)用来检索给定类型的方法数组.

问题是返回的MethodInfo可能包括由我不想要的编译器生成的方法.例如:

  • 财产bool Enabled { get; }将获得bool get_Enabled()

  • 事件SomethingChanged会得到 add_SomethingChanged(EventHandler)remove_SomethingChanged(EventHandler)

我可以添加一些过滤器逻辑来摆脱它们,这可能会变得非常复杂.我想知道是否还有其他我可以做的事情,例如BindingFlags设置,只检索用户定义的方法?

c# reflection events properties getmethod

16
推荐指数
1
解决办法
4804
查看次数

.NET:每次事件激发良好做法时都会创建新的EventArgs吗?

例如,我有一个基本事件发布方法:

    protected virtual OnSomeEvent(EventArgs e)
    {
        var handler = SomeEvent;
        if (handler != null)
        {
            handler(this, e);
            // handler(this, new EventArgs());// EDIT: Yes it should be
                                           // handler(this, e),
                                           // ignore this one :D
        }
    }
Run Code Online (Sandbox Code Playgroud)

对于派生类,OnSomeEvent它在触发时覆盖并引发其他事件:

    protected override OnSomeEvent(EventArgs e)
    {
        base.OnSomeEvent(e);

        if (ExtendedEvent != null)
        {
            OnExtendedEvent(e);
        }
    }

    protected void OnExtendedEvent(EventArgs e)
    {
       // some stuff done
       // new information the ExtendedEventArgs object needs 
       //  is not available until this point

       ExtendedEvent(this, new ExtendedEventArgs(someStuff, someOtherStuff)); …
Run Code Online (Sandbox Code Playgroud)

c# events event-handling eventargs

8
推荐指数
2
解决办法
3084
查看次数

在分页符打印页面上的CSS垂直居中容器

如果容器在打印出来时碰到新页面,有没有办法将容器垂直居中?

如图所示,容器A可能会变得太大,A和B将占用自己的页面.当发生这种情况时,我希望B或两者都居中.

+----------------+       +----------------+   +----------------+
| +------------+ |       |                |   |                |
| |            | |       | +------------+ |   |                |
| |     A      | |       | |            | |   |                |
| |            | |       | |            | |   | +------------+ |
| +------------+ |       | |            | |   | |            | |
|                | +---> | |     A      | |   | |     B      | |
| +------------+ |       | |            | |   | |            | |
| | …
Run Code Online (Sandbox Code Playgroud)

javascript css printing pdf-generation wkhtmltopdf

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

XNA:没有安装Game Studio的动态内容加载?

我想让我的游戏在运行时加载内容(例如模型,jpg文件等)并显示它们.

我查看了XNA网站上的示例(http://creators.xna.com/en-US/sample/winforms_series2),但是这种方法需要在客户端计算机上安装Game Studio(也就是Visual Studio).

在没有VS + GS的情况下,在运行时加载内容的方法有哪些?我是否必须完全避免XNA内容管道?如果是这样,我必须编写自己的图形导入库,还是有任何适合此任务的库?

提前致谢!

c# xna pipeline dynamic

5
推荐指数
1
解决办法
4111
查看次数

如何重新分配一次性对象变量?

在C#中使用新对象重新分配一次性对象变量时,它在内存中是如何工作的?旧对象占用的内存空间是否会被新对象覆盖?或者我是否还要打电话Dispose()来释放它使用的资源?

DisposableThing thing;

thing = new DisposableThing();
//....do stuff
//thing.Dispose();
thing = new DisposableThing();
Run Code Online (Sandbox Code Playgroud)

c# garbage-collection dispose idisposable

5
推荐指数
2
解决办法
2070
查看次数

CSS:图像(IMG)元素下方出现2像素线?

任何人都可以向我指出为什么在图像下方和导航栏上方有一条线(背景颜色,在这种情况下为红色)?Firefox和Chrome都显示红线,因此我假设它按预期呈现.但我似乎无法通过开发人员工具找到问题.边框,填充和边距均为0,这令人费解.这是代码的精简版本,或者jsfiddle.net/bvss4/9:

  <body>
    <div id="main-wrapper">
      <header id="main-header">
        <img id="title-image" src="http://i.imgur.com/JaYSY.jpg" />
        <div id="main-navbar">
            STUFF
        </div>
      </header>
    </div>
  </body>
Run Code Online (Sandbox Code Playgroud)

CSS:

* {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

#main-wrapper {
    width: 90%;
    margin: 0 auto;
    border: 3px solid #888;
    margin-top: 20px;
    background: red;
}

#title-image {
    width: 100%;
}

#main-navbar {
    width: 100%;
    background: #333333;
}
Run Code Online (Sandbox Code Playgroud)

坏红线

html css image

4
推荐指数
2
解决办法
7966
查看次数

更改numericUpDown上的数字时数据绑定失败

我有这样的数据绑定:

    numericUpDown1.DataBindings.Add("Value", myBox1, "Width");
Run Code Online (Sandbox Code Playgroud)

每当myBox1.Width更改时,它将更新numericUpDown1.Value.

问题是当在控件上输入新数字时,myBox1.Width不会立即更新,而是仅在光标离开控件的文本区域之后.这个bug有什么解决方法吗?谢谢!

.net c# data-binding numericupdown

3
推荐指数
1
解决办法
3822
查看次数