在帖子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#中编写了一些代码,我发现自己写了:
return new MyClass(...
Run Code Online (Sandbox Code Playgroud)
当我注意到,这两个return
和new
都是C#关键字.所以我想知道C#中最长的关键字合法序列是什么.我能想到的只有:
internal static override void MyFunc(...
Run Code Online (Sandbox Code Playgroud)
internal static override void
所有关键字在哪里?你能想到更长的关键词序列吗?
注意:这个问题确实没有意义.我只是希望在火上浇一些乐趣:-)
我正在研究h264视频编解码器.我想知道:H264中的单个NAL单元相当于一个视频帧吗?
我的工作室最近从SourceSafe切换到Subversion,让我们从自动锁中解脱出来.这导致了对Forms的并发编辑,这很精彩.但是当多个开发人员提交更改时,设计人员创建的代码文件(所有命名的文件TheFormName.designer.cs
)都会导致很难解决的冲突.
据我所知,这是因为设计师生成的代码会在用户修改时重新安排,无论实际更改有多少.
有没有办法可以根据现有的委托类型创建新的委托类型?就我而言,我想创建一个MyMouseEventDelegate
具有相同功能的委托EventHandler<MouseEventArgs>
.
我为什么要这个?当然,要利用编译时类型检查!通过这种方式,我可以拥有两个不同的代表:MyRightClickHandler
并且MyLeftClickHandler
,并且永远不会混淆twain - 即使它们在功能上都相同EventHandler<MouseEventArgs>
.
是否有语法来做这种事情?
哦,代码如下:
using MyRightClickHandler = EventHandler<MouseEventArgs>
Run Code Online (Sandbox Code Playgroud)
不够好.它不进行任何类型检查,因为它实际上不会创建新类型.而且我必须将这样一行粘贴到我要引用的每个代码文件中MyRightClickHandler
.
我需要为任何字符串添加"123"和零 - 但结果字符串必须正好是12个字符长.
例如:
28431 = 123000028431
987 = 123000000987
2 = 123000000002
Run Code Online (Sandbox Code Playgroud)
如何在C#中做到这一点?
提前致谢
我很想知道C的替代品在嵌入式开发者世界中有多受欢迎,例如Ada ......
我只使用过C(带有一点汇编程序),但是我的目标资源非常有限.在这个空间还有什么其他的东西吗?什么赢得了机顶盒的商品?
如果!C的根本原因是什么?
谢谢.
假设我有一个像这样的矢量:
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中非常新手,但我一直背负着这些东西...)
我有一个按钮,我想短暂地"闪烁"以引起用户的注意.我认为最简单的方法是将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)
这是完全正确的!但是当我拍摄截图并检查颜色时,它与其他按钮不一样!
是否有某种掩蔽?或者也许某种犹豫不决?
我是MATLAB的新手,它不在工作描述中,我被迫接管编写和维护我公司使用的代码的人.生活很艰难.
我接手的人告诉我,他宣称所有的大数据向量都是global
为了节省内存.更具体地说,当一个函数调用另一个函数时,他在传递数据时不会创建数据的副本.
这是真的?我阅读了有效使用内存的策略,它说明了这一点
处理大型数据集时,请注意,如果被调用函数修改了其值,MATLAB将生成输入变量的临时副本.这会暂时使存储阵列所需的内存加倍,这会导致MATLAB在没有足够的内存时生成错误.
它说的内存分配对于数组#Function参数非常相似:
将变量传递给函数时,实际上是将引用传递给变量所代表的数据.只要输入数据不被被调用的函数修改,调用函数中的变量和被调用函数中的变量就指向内存中的相同位置.如果被调用函数修改了输入数据的值,则MATLAB将原始数组的副本复制到内存中的新位置,使用修改后的值进行更新,并将调用函数中的输入变量指向此新数组.
那么使用global
可以更好吗?似乎有点草率地轻率地声明所有大数据global
,而不是确保没有任何代码修改其输入参数.我错了吗?这真的可以改善RAM的使用吗?
c# ×5
matlab ×2
.net ×1
backcolor ×1
button ×1
combobox ×1
containers ×1
delegates ×1
embedded ×1
enums ×1
h.264 ×1
inheritance ×1
keyword ×1
matrix ×1
media-player ×1
string ×1
svn ×1
triangular ×1
video ×1
video-codecs ×1
winforms ×1