小编Joa*_*nge的帖子

直接修改List <T>元素

我有这个结构:

struct Map
{
    public int Size;

    public Map ( int size )
    {
        this.Size = size;
    }

    public override string ToString ( )
    {
        return String.Format ( "Size: {0}", this.Size );
    }
}
Run Code Online (Sandbox Code Playgroud)

使用数组时,它可以工作:

Map [ ] arr = new Map [ 4 ] {
    new Map(10),
    new Map(20),
    new Map(30),
    new Map(40)};

arr [ 2 ].Size = 0;
Run Code Online (Sandbox Code Playgroud)

但是当使用List时,它不会编译:

List<Map> list = new List<Map> ( ) {
    new Map(10),
    new Map(20),
    new Map(30),
    new Map(40)};

list [ 2 …
Run Code Online (Sandbox Code Playgroud)

.net c#

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

如何更改Visual Studio中的大括号/括号颜色

我不是在谈论高光颜色而是实际颜色.我得到了一个浅色背景色的配色方案,但大括号/圆括号几乎看不到.谁知道如何改变这个?

顺便说一句这是C#,因为C++似乎使用运算符颜色为大括号/圆括号着色.

c# ide visual-studio

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

.NET类型的私有成员的命名约定

通常当我在一个类或一个结构体中有一个私有字段时,我使用camelCasing,所以当你看到它的名字时它显然是私有的,但是在我的一些同事的C#代码中,我看到它们使用了m_大多数或有时候_,就像有某种惯例.

.NET命名约定是否阻止您使用成员名称的下划线?

当你提到MS命名约定或不提及时,他们会告诉你他们的最佳方式,但不解释其背后的原因.

此外,当我是某些代码的所有者时,我明确地将camelCasing用于私有成员,当他们必须对代码进行微小修改时,他们会坚持他们的约定而不是遵循任何约定.

这是一个争议吗?

.net c# struct class

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

如何在WPF中锚定控件?

我有TreeView一个填充应用程序的顶部部分,但由于TreeView更改中的项目数,我的"应用"按钮会垂直更改其位置.有没有办法将它锚定到窗口的底部,因此它始终位于窗口的右下部,即距右下边缘10x10的距离.

.net c# wpf anchor

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

在.NET 2.0中使用扩展方法?

我想这样做,但得到这个错误:

错误1无法定义新的扩展方法,因为无法找到编译器所需的类型"System.Runtime.CompilerServices.ExtensionAttribute".您是否缺少对System.Core.dll的引用?[剪了一些路径]

我在这里看到一些答案说,你必须自己定义这个属性.

我怎么做?

编辑:这就是我所拥有的:

[AttributeUsage ( AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Method )]
public sealed class ExtensionAttribute : Attribute
{
    public static int MeasureDisplayStringWidth ( this Graphics graphics, string text )
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# extension-methods

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

从另一个线程更新ObservableCollection的最佳方法是什么?

我正在使用BackgroundWorker更新,ObservableCollection但它给出了这个错误:

"这种类型CollectionView不支持SourceCollection从与Dispatcher线程不同的线程对其进行更改 ."

用最少的工作量来解决这个问题的最佳和最优雅的方法是什么.我不想写低级别的基于锁的多线程代码.

我在网上看到了一些解决方案,但它们已有几年的历史了,所以不确定解决这个问题的最新共识是什么.

.net c# parallel-processing multithreading observablecollection

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

Python中的字符串格式

我想做一些类似的String.Format("[{0}, {1}, {2}]", 1, 2, 3)回报:

[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我如何在Python中执行此操作?

python string formatting

31
推荐指数
5
解决办法
9万
查看次数

如何在匿名方法中产生回报?

基本上我有一个匿名的方法,我用于我的BackgroundWorker:

worker.DoWork += ( sender, e ) =>
{
    foreach ( var effect in GlobalGraph.Effects )
    {
        // Returns EffectResult
        yield return image.Apply (effect);
    }
};
Run Code Online (Sandbox Code Playgroud)

当我这样做时,编译器告诉我:

"yield语句不能在匿名方法或lambda表达式中使用"

那么在这种情况下,最优雅的方法是什么?顺便说一句,这个DoWork方法在静态方法中,以防对解决方案很重要.

.net c# anonymous-methods backgroundworker yield-return

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

结构的不变性

可能重复:
为什么可变结构是邪恶的?

我在很多地方阅读它,包括在这里最好将结构化为不可变的.

这背后的原因是什么?我看到许多微软创建的结构是可变的,就像xna中那样.可能在BCL还有更多.

不遵守本指南的利弊是什么?

.net c# struct immutability

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

如何在C#中的相对路径中获取文件

如果我有一个名为app.exe的可执行文件,这是我在C#中编码的,我如何使用相对路径从与app.exe相同的目录中加载文件夹?

这会在路径异常中抛出非法字符:

string [ ] files = Directory.GetFiles ( "\\Archive\\*.zip" );
Run Code Online (Sandbox Code Playgroud)

如何在C#中做到这一点?

.net c# directory file

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