我有这个结构:
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) 我不是在谈论高光颜色而是实际颜色.我得到了一个浅色背景色的配色方案,但大括号/圆括号几乎看不到.谁知道如何改变这个?
顺便说一句这是C#,因为C++似乎使用运算符颜色为大括号/圆括号着色.
通常当我在一个类或一个结构体中有一个私有字段时,我使用camelCasing,所以当你看到它的名字时它显然是私有的,但是在我的一些同事的C#代码中,我看到它们使用了m_大多数或有时候_,就像有某种惯例.
.NET命名约定是否阻止您使用成员名称的下划线?
当你提到MS命名约定或不提及时,他们会告诉你他们的最佳方式,但不解释其背后的原因.
此外,当我是某些代码的所有者时,我明确地将camelCasing用于私有成员,当他们必须对代码进行微小修改时,他们会坚持他们的约定而不是遵循任何约定.
这是一个争议吗?
我有TreeView一个填充应用程序的顶部部分,但由于TreeView更改中的项目数,我的"应用"按钮会垂直更改其位置.有没有办法将它锚定到窗口的底部,因此它始终位于窗口的右下部,即距右下边缘10x10的距离.
我想这样做,但得到这个错误:
错误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) 我正在使用BackgroundWorker更新,ObservableCollection但它给出了这个错误:
"这种类型
CollectionView不支持SourceCollection从与Dispatcher线程不同的线程对其进行更改 ."
用最少的工作量来解决这个问题的最佳和最优雅的方法是什么.我不想写低级别的基于锁的多线程代码.
我在网上看到了一些解决方案,但它们已有几年的历史了,所以不确定解决这个问题的最新共识是什么.
.net c# parallel-processing multithreading observablecollection
我想做一些类似的String.Format("[{0}, {1}, {2}]", 1, 2, 3)回报:
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
我如何在Python中执行此操作?
基本上我有一个匿名的方法,我用于我的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方法在静态方法中,以防对解决方案很重要.
可能重复:
为什么可变结构是邪恶的?
我在很多地方阅读它,包括在这里最好将结构化为不可变的.
这背后的原因是什么?我看到许多微软创建的结构是可变的,就像xna中那样.可能在BCL还有更多.
不遵守本指南的利弊是什么?
如果我有一个名为app.exe的可执行文件,这是我在C#中编码的,我如何使用相对路径从与app.exe相同的目录中加载文件夹?
这会在路径异常中抛出非法字符:
string [ ] files = Directory.GetFiles ( "\\Archive\\*.zip" );
Run Code Online (Sandbox Code Playgroud)
如何在C#中做到这一点?
c# ×9
.net ×8
struct ×2
anchor ×1
class ×1
directory ×1
file ×1
formatting ×1
ide ×1
immutability ×1
python ×1
string ×1
wpf ×1
yield-return ×1