小编Sha*_*mer的帖子

如何为enum值设置枚举绑定组合框以及自定义字符串格式?

在帖子Enum ToString中,描述了一个方法来使用自定义属性,DescriptionAttribute如下所示:

Enum HowNice {
  [Description("Really Nice")]
  ReallyNice,
  [Description("Kinda Nice")]
  SortOfNice,
  [Description("Not Nice At All")]
  NotNice
}
Run Code Online (Sandbox Code Playgroud)

然后,GetDescription使用如下语法调用函数:

GetDescription<HowNice>(NotNice); // Returns "Not Nice At All"
Run Code Online (Sandbox Code Playgroud)

但是,当我想简单地使用枚举值填充ComboBox时GetDescription,这并没有真正帮助我,因为我不能强制ComboBox调用.

我想要的是有以下要求:

  • 读取(HowNice)myComboBox.selectedItem将返回所选值作为枚举值.
  • 用户应该看到用户友好的显示字符串,而不仅仅是枚举值的名称.因此NotNice,用户不会看到" Not Nice At All" 而是看到" ".
  • 希望解决方案需要对现有枚举进行最少的代码更改.

显然,我可以为我创建的每个枚举实现一个新类,并覆盖它ToString(),但这对每个枚举来说都是很多工作,我宁愿避免这样做.

有任何想法吗?

哎呀,我甚至会一个拥抱作为赏金:-)

c# enums combobox

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

只使用C#关键字,您可以制作的最长的法律声明块是什么?

我在C#中编写了一些代码,我发现自己写了:

return new MyClass(...
Run Code Online (Sandbox Code Playgroud)

当我注意到,这两个returnnew都是C#关键字.所以我想知道C#中最长的关键字合法序列是什么.我能想到的只有:

internal static override void MyFunc(...
Run Code Online (Sandbox Code Playgroud)

internal static override void所有关键字在哪里?你能想到更长的关键词序列吗?

注意:这个问题确实没有意义.我只是希望在火上浇一些乐趣:-)

c# keyword

20
推荐指数
2
解决办法
1859
查看次数

在h264中,NAL单位表示帧.

我正在研究h264视频编解码器.我想知道:H264中的单个NAL单元相当于一个视频帧吗?

video containers media-player h.264 video-codecs

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

为什么C#设计器生成的代码(如Form1.designer.cs)会对Subversion造成严重破坏?

我的工作室最近从SourceSafe切换到Subversion,让我们从自动锁中解脱出来.这导致了对Forms的并发编辑,这很精彩.但是当多个开发人员提交更改时,设计人员创建的代码文件(所有命名的文件TheFormName.designer.cs)都会导致很难解决的冲突.

据我所知,这是因为设计师生成的代码会在用户修改时重新安排,无论实际更改有多少.

  • 如何让这些冲突更容易解决?
  • 有没有办法告诉设计师修改代码?
  • 经验丰富的C#团队如何处理表单的并发修改?

c# svn version-control windows-forms-designer visual-studio

17
推荐指数
2
解决办法
7181
查看次数

如何在C#中基于现有的委托类型创建新的委托类型?

有没有办法可以根据现有的委托类型创建新的委托类型?就我而言,我想创建一个MyMouseEventDelegate具有相同功能的委托EventHandler<MouseEventArgs>.

我为什么要这个?当然,要利用编译时类型检查!通过这种方式,我可以拥有两个不同的代表:MyRightClickHandler并且MyLeftClickHandler,并且永远不会混淆twain - 即使它们在功能上都相同EventHandler<MouseEventArgs>.

是否有语法来做这种事情?

哦,代码如下:

using MyRightClickHandler = EventHandler<MouseEventArgs>
Run Code Online (Sandbox Code Playgroud)

不够好.它不进行任何类型检查,因为它实际上不会创建新类型.而且我必须将这样一行粘贴到我要引用的每个代码文件中MyRightClickHandler.

c# inheritance delegates

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

如何在字符串的开头添加"123"并将其填充为12个字符?

我需要为任何字符串添加"123"和零 - 但结果字符串必须正好是12个字符长.

例如:

28431 = 123000028431
987   = 123000000987
2     = 123000000002
Run Code Online (Sandbox Code Playgroud)

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

提前致谢

c# string winforms

16
推荐指数
3
解决办法
4万
查看次数

嵌入式平台开发(!C)

我很想知道C的替代品在嵌入式开发者世界中有多受欢迎,例如Ada ......

我只使用过C(带有一点汇编程序),但是我的目标资源非常有限.在这个空间还有什么其他的东西吗?什么赢得了机顶盒的商品?

如果!C的根本原因是什么?

  • 编译器支持目标
  • Trace\static分析工具
  • 其他...

谢谢.

embedded development-environment

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

如何在MATLAB中基于矢量创建三角矩阵?

假设我有一个像这样的矢量:

A = [101:105]
Run Code Online (Sandbox Code Playgroud)

这是真的:

[ 101, 102, 103, 104, 105 ]
Run Code Online (Sandbox Code Playgroud)

我只想使用矢量/矩阵函数和运算符来生成矩阵:

101 102 103 104 105
102 103 104 105 0
103 104 105 0   0
104 105 0   0   0
105 0   0   0   0
Run Code Online (Sandbox Code Playgroud)

或以下矩阵:

101 102 103 104 105
0   101 102 103 104
0   0   101 102 103
0   0   0   101 102
0   0   0   0   101
Run Code Online (Sandbox Code Playgroud)

任何人的想法?

(我在MATLAB中非常新手,但我一直背负着这些东西...)

matlab matrix triangular

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

当我将.NET Button的BackColor更改回其原始值时,它看起来不再相同

我有一个按钮,我想短暂地"闪烁"以引起用户的注意.我认为最简单的方法是将Button的BackColor属性更改为另一种颜色,然后再将其切换回来.所以我这样做:

this.oldColor = myButton.BackColor;
myButton.BackColor = Color.Blue;
Run Code Online (Sandbox Code Playgroud)

然后在大约1/2秒之后:

myButton.BackColor = this.oldColor;
Run Code Online (Sandbox Code Playgroud)

但是按钮的背景颜色最终明显比表单上的其他按钮更暗!

起初,我认为这是因为按钮的原始颜色是命名颜色(在这种情况下,"控制")有一些特殊之处,但事实并非如此.

更糟糕的是,当我myButton.BackColor在调试器中查看时,我得到了

{Name=Control, ARGB=(255, 236, 233, 216)}
Run Code Online (Sandbox Code Playgroud)

这是完全正确的!但是当我拍摄截图并检查颜色时,它与其他按钮不一样!

是否有某种掩蔽?或者也许某种犹豫不决?

.net button backcolor

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

我是通过声明变量全局而不是将它们作为参数传递来节省MATLAB中的内存吗?

我是MATLAB的新手,它不在工作描述中,我被迫接管编写和维护我公司使用的代码的人.生活很艰难.

我接手的人告诉我,他宣称所有的大数据向量都是global为了节省内存.更具体地说,当一个函数调用另一个函数时,他在传递数据时不会创建数据的副本.

这是真的?我阅读了有效使用内存的策略,它说明了这一点

处理大型数据集时,请注意,如果被调用函数修改了其值,MATLAB将生成输入变量的临时副本.这会暂时使存储阵列所需的内存加倍,这会导致MATLAB在没有足够的内存时生成错误.

它说的内存分配对于数组#Function参数非常相似:

将变量传递给函数时,实际上是将引用传递给变量所代表的数据.只要输入数据不被被调用的函数修改,调用函数中的变量和被调用函数中的变量就指向内存中的相同位置.如果被调用函数修改了输入数据的值,则MATLAB将原始数组的副本复制到内存中的新位置,使用修改后的值进行更新,并将调用函数中的输入变量指向此新数组.

那么使用global可以更好吗?似乎有点草率地轻率地声明所有大数据global,而不是确保没有任何代码修改其输入参数.我错了吗?这真的可以改善RAM的使用吗?

matlab memory-management

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