这可能看起来有点颠倒,但我想要做的是通过其Description属性从枚举中获取枚举值.
所以,如果我有一个枚举声明如下:
enum Testing
{
[Description("David Gouge")]
Dave = 1,
[Description("Peter Gouge")]
Pete = 2,
[Description("Marie Gouge")]
Ree = 3
}
Run Code Online (Sandbox Code Playgroud)
我希望能够通过提供字符串"Peter Gouge"来获得2.
作为起点,我可以遍历枚举字段并使用正确的属性获取字段:
string descriptionToMatch = "Peter Gouge";
FieldInfo[] fields = typeof(Testing).GetFields();
foreach (FieldInfo field in fields)
{
if (field.GetCustomAttributes(typeof(DescriptionAttribute), false).Count() > 0)
{
if (((DescriptionAttribute)field.GetCustomAttributes(typeof(DescriptionAttribute), false)[0]).Description == descriptionToMatch)
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是那时候我仍然坚持在内心做什么.也不确定这是否是第一个出路.
我经常看到java代码中使用的以下命名约定.
class SomeClass {
private final String name;
public SomeClass(final String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
这对我来说有点奇怪.首先,如果你碰巧拼错方法签名中的变量,它仍然会编译...
class SomeClass {
private final String name;
public SomeClass(final String nane) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
编译好.可能将nane标记为未使用的变量,但是赋值(它只是一个自我赋值)会静默编译.
我发现自己想要使用'm'作为成员变量......
class SomeClass {
private final String mName;
public SomeClass(final String name) {
mName = name;
}
}
Run Code Online (Sandbox Code Playgroud)
它比.this变体短,并且捕获了之前显示的奇怪的拼写错误.
然而,当我把这个作为我们新项目的惯例提出来时,我的同事给了我各种各样的瑕疵,说"在java中我们不这样做.".
只是好奇为什么?
在Visual Studio 2010中,我们在"工具|选项|项目和解决方案|构建和运行"(在Internet上找不到正确的图像)下有两个用于记录MSBuild的选项:
'MSBuild项目构建输出详细程度'和'MSBuild项目构建日志详细程度'.
所以我希望能够在Visual Studio devenv(正确)中的输出视图中获得最小的构建日志,同时在某个日志文件中创建详细的构建日志.
我找不到配置要显示的构建日志文件的方法.
注意:我不想配置自己的MSBuild.
我目前正在尝试让Xdebug在我们的开发服务器上工作.作为客户端我使用netbeans和连接到目前为止工作没有问题.但是当我尝试在netbeans中设置一个断点时,它就会被忽略.
是的,我已经谷歌搜索了几个小时,并在这里找到了一些完全符合我描述的问题: SO 1 SO 2
但这似乎并没有为我解决.该Xdebug模块通过zend_extension = path/to/xdebug加载.所以在
/etc/php5/conf.d/xdebug.ini
我还查看了php5/apache和php5/cli php.ini以确保它没有加载extension = somewhere那里.我还检查了phpinfo()找到的"解析的其他.ini文件",似乎没有其他地方加载.
通过执行php -m我可以看到加载的Xdebug模块
[PHP Modules]
并在
[Zend Modules]
不确定这是否表明它仍然被加载两次或者它是否正常?如果我zend_extension=/path/to/xdebug.so从conf.d/xdebug.ini它删除它仍然不再加载.所以我真的认为它只是装在那里.
如果我设置了remote_log选项,则看到Netbeans正在尝试设置某些内容:
<- breakpoint_set -i 452 -t line -s enabled
-f file:///http:/development.xxx.de/users/itsame/index.php -n 15
-> <response xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set"
transaction_id="452" state="enabled" id="258870001">
</response>
Run Code Online (Sandbox Code Playgroud)
但它似乎没有任何效果(看起来几乎和我上面发布的其他SO问题一样.但是如果我在php代码中做了一个手动xdebug_break(),它就会正确地处理它.
PHP版本是5.2.6,Xdebug是2.1.我有什么建议可以看看下一个吗?
我想知道如何优化我的Doctrine查询,因为我的一些查询太长了.
我不想特别针对我的查询方法,但是我可以将常用方法应用于所有请求,因为我找不到有关此方法的信息.
我发现自己经常在 Intellij IDEA 中运行不同的、相互依赖的 Maven 项目的相同目标(全新安装)。
有谁知道一种配置诸如 Maven 目标组合之类的方法,理想情况下,您可以在 IDEA 的任务栏中配置一个按钮,您可以点击该按钮来按顺序执行这些目标?甚至可以使用键盘快捷键吗?
类似的事情可以通过 Maven 运行配置来实现,但是 IDEA 不会自动意识到运行对项目文件系统资源所做的更改。
干杯,约翰内斯
这是一个简单的问题,我以前做过.我只是不记得它是怎么称呼的.
在python我可以这样做:
arr = ['one', 'two']
one, two = arr
Run Code Online (Sandbox Code Playgroud)
我怎么用JavaScript做到这一点?
<created>
pat@c.com
</created>
Run Code Online (Sandbox Code Playgroud)
我想替换上面的内容,但用户名可能会有所不同,即pat @ c.com,harry @ c.com ...
<created>
tom@c.com
</created>
Run Code Online (Sandbox Code Playgroud)
什么是在vim中替换它的命令
%s/<created>\r*\r</created>/new string
Run Code Online (Sandbox Code Playgroud) 我想计算2个具有大小的协方差矩阵(10304,1034),matlab创建第一个,但是当它运行第二个命令时,会发生以下错误:
>> j=ones(10000,10000);
>> jj=ones(10000,10000);
??? Out of memory. Type HELP MEMORY for your options.
Run Code Online (Sandbox Code Playgroud)
我的笔记本电脑的RAM是2GB,但它仍然有1 GB免费.我使用的是Windows 7和32位MATLAB 2009b.
我该如何解决这个错误?
我目前需要使用数十个表和数千个字段创建用户前端应用程序到数据库.
它应该是java swing应用程序,我试图尽可能找到最自动化的解决方案.理想情况下,完全避免手动创建DAO层,bean定义和GUI创建.
目前我们正在讨论将数据库转换为XML文档集的可能性,因此解决方案应该包括使用关系数据库和XML文档的能力.
任何想法/经验?