小编Joa*_*nge的帖子

什么时候需要处理?

当你有像这样的代码:

Bitmap bmp = new Bitmap ( 100, 100 );
Graphics g = Graphics.FromImage ( bmp );

Pen p = new Pen ( Color.FromArgb ( 128, Color.Blue ), 1 );
Brush b = new SolidBrush ( Color.FromArgb ( 128, Color.Blue ) );

g.FillEllipse ( b, 0, 0, 99, 99 );    
g.FillRegion ( b, pictureBox1.Region );

pictureBox1.BackColor = Color.Transparent;
pictureBox1.Image = bmp;
Run Code Online (Sandbox Code Playgroud)

你必须丢弃笔和刷子吗?那么bmp和g呢?

我的主要问题是,如果要手动处理这些问题,为什么他们一旦离开范围就不会被处置?如果您没有手动处理它们会发生什么?这是人们手动执行此操作的延迟吗?

.net c# gdi+ garbage-collection dispose

13
推荐指数
3
解决办法
8578
查看次数

在.NET中使用属性的性能开销

1 ..属性的使用是否会导致性能开销?想想一个类:

    public class MyClass
    {
       int Count {get;set;}
    }
Run Code Online (Sandbox Code Playgroud)

它有10个属性(属性是类,其中属性类本身比MyClass本身大,如:

public class FirstAttribute : Attribute
{
   int A,B,C,D,E,F,G,H,I,J ... {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

2 ..每次MyClass实例化这些属性中的10个是内存开销吗?(FirstAttribute其大小的10倍MyClass将用其中的10个装饰,因此使实际对象本身与其上装饰的属性的总大小相比这么小.)这是一个问题吗?

3 ..这种情况对于结构是否有任何不同(结构是值类型和属性是引用类型)?

4 ..存储在内存中的属性与它们所附着的对象有关吗?他们是如何联系在一起的?

5 ..是否MyClass在初始化或使用反射检索属性时初始化属性?

.net c# reflection performance attributes

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

为什么C#switch语句不允许使用typeof/GetType()?

如下例所示:

switch ( myObj.GetType ( ) )
{
    case typeof(MyObject):
        Console.WriteLine ( "MyObject is here" );
        break;
}
Run Code Online (Sandbox Code Playgroud)

.net c# reflection switch-statement

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

使用的原因是什么; 在F#列表而不是,?

这可能是一个奇怪的问题,但如果我想要定义一个整数列表:

1, 2, 3, 4, 5, 6, 7, 8, 9
Run Code Online (Sandbox Code Playgroud)

我需要使用;角色吗?

[ 1; 2; 3; 4; 5; 6; 7; 8; 9 ]
Run Code Online (Sandbox Code Playgroud)

代替?:

[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
Run Code Online (Sandbox Code Playgroud)

在我看来,,它更自然,更容易在眼睛上.只是想知道背后使用的想法;?(不批评)

syntax f# list

13
推荐指数
4
解决办法
1031
查看次数

如何存储对静态类的引用?

所以类似于:

public static class StaticClass {}

public class InstanceClass
{
    static StaticClass StaticProperty {get;set;}

    public InstanceClass()
    {
        InstanceClass.StaticProperty = StaticClass;
    }
}
Run Code Online (Sandbox Code Playgroud)

我以为可以做到这一点,但编译器返回这些错误:

静态类型不能用作参数

静态类型不能用作返回类型

编辑:我知道这不起作用,但为什么?我想StaticClass存储在内存中的某个地方,因此可以允许其他变量在同一个内存中引用它,对吧?

EDIT2:其中一个用例是这样的:

假设您收集了5个不同的静态类,没有源代码,并且它们执行通用的东西,因此您希望通过单个静态类方便地访问它们.你可以这样做:

public static class GenericStuff
{
    public LinearAlgebra LinearAlgebra {get;set;}
    public StringUtilities String {get;set;}
    public GeometryOps Geometry {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

并使用它像:

GenericStuff.LinearAlgebra.GetAngleBetweenVectors(v0, v1);
Run Code Online (Sandbox Code Playgroud)

您可以想到的其他一些用例.

.net c# compiler-construction

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

如何在ToolStrip Winforms控件的角落删除这个奇怪的视觉神器?

这是显示问题的图片.看看右下角.

谁知道如何摆脱它?

设置LayoutStyleVerticalStackWithOverflow修复它,但也将项目水平居中,这是我不想要的.

我只想要像照片中的垂直堆栈,但右下角没有黑色线条.

在此输入图像描述

.net c# toolstrip styling winforms

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

实现接口的开销

我的一位同事告诉我,实现接口会带来开销.这是真的?

我不关心微观优化; 我只是想知道这需要更深入的细节.

.net c# java performance interface

12
推荐指数
5
解决办法
4370
查看次数

如何禁用WPF TreeView中的双击行为?

在我TreeView,我有MouseDown/ MouseUp等等的不同事件,但当我做得足够快时,TreeView扩展/折叠TreeNode.我不想要这种烘焙行为.

有没有办法禁用它?

.net c# wpf treeview

12
推荐指数
1
解决办法
8734
查看次数

为什么没有Math.Pow将int作为指数?

我读到,Math.Pow能够处理分数幂的实现非常复杂.当你不需要分数幂时,为什么没有一个版本为指数制作一个更快的版本?

.net c# math performance

12
推荐指数
1
解决办法
1997
查看次数

如何在Winforms中更改ToolStripItem的已检查状态?

当我查找它时,它们将其列为具有.Checked属性.但是在Visual Studio和msdn上,它都没有列出任何Checked属性的孩子.

ContextMenuStrip menu = new ContextMenuStrip ( );
var menuItem = menu.Items.Add ( "CheckedItem" );
//menuItem.Checked?
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

.net c# contextmenu toolstripitem winforms

12
推荐指数
1
解决办法
1万
查看次数