我经常发现自己实现了一个类来维护某种自己的状态属性作为枚举:我有状态类型的状态枚举和状态属性.我该如何解决这个名称冲突?
public class Car
{
public enum Status
{
Off,
Starting,
Moving
};
Status status = Status.Off;
public Status Status // <===== Won't compile =====
{
get { return status; }
set { status = value; DoSomething(); }
}
}
Run Code Online (Sandbox Code Playgroud)
如果Status enum对于不同的类型是通用的,我会把它放在课外,问题就会解决.但Status仅适用于Car,因此在类外声明枚举是没有意义的.
在这种情况下你使用什么命名约定?
注意:在回答这个问题的评论中,对这个问题进行了部分辩论.由于这不是主要问题,因此没有太多可见性.
编辑:Filip Ekberg建议IMO针对"状态"的具体案例提供出色的解决方法.然而,我很有兴趣阅读关于枚举/属性名称不同的解决方案,如Michael Prewecki的回答.
EDIT2(2010年5月):我最喜欢的解决方案是按照Chris S的建议复数枚举类型名称.根据MS指南,这应该仅用于标记枚举.但我越来越喜欢它了.我现在也将它用于常规枚举.
我想自动启动一组Linux EC2实例.
基本上,我想写一个脚本/程序,它将:
使用VMWare,我通常会使用vmrun或Vix SDK.
Amazon AWS/EC2有哪些选项?
HTML5支持<svg>标记,允许将SVG嵌入到HTML中.
深入挖掘,我可以在<svg>片段中嵌入一些HTML 吗?例如,我想<table>在我的SVG图形的某些部分放置一个CSS .
我做了一个小测试,Chrome12不喜欢<p>里面的HTML <svg>.是否有一些技术可以使它工作(例如可能是一个html容器标签?)?
环境:.NET4 C#
大家好,
我想结合这两个列表:{ "A", "B", "C", "D" }和{ "1", "2", "3" }
进入这一个:
{ "A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3", "D1", "D2", "D3" }
Run Code Online (Sandbox Code Playgroud)
显然,我可以使用嵌套循环.但我想知道LINQ是否可以提供帮助.据我所知,Zip()在这种情况下不是我的朋友,对吧?
TIA,
试着看看if (dr.HasRows)在while (dr.read())函数之前添加一个是否有益.我的意思是,从技术上讲,如果它没有行,它就不会读取,所以如果你先检查它会有关系吗?
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
while (dr.Read())
{
....do stuff here
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果你只是确保它有值提供,那么这基本上会做同样的事情......
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
....do stuff here
}
}
Run Code Online (Sandbox Code Playgroud) 环境:VS2008 C#项目
我需要构建我的应用程序以在2个不同的环境中使用.在其中一个环境中,我需要使用第三方DLL程序集.
我可以使用#if块来隔离使用此DLL的代码.但是,如何有条件地在CS项目文件中包含对DLL的引用?
编辑:womp在评论中有一个很好的观点.我变成了一个单独的问题:如果从未调用引用的DLL,它是否会被加载?TIA,
文件说:
如果通过HTTP POST上传由filename命名的文件,则返回TRUE
怎么$_FILES['blah']['tmp_name']可能不是POST上传的结果?PHP创建了这个文件名.
这有助于确保恶意用户没有试图欺骗脚本处理不应该工作的文件 - 例如/ etc/passwd.
我明白我应该仔细检查文件内容和大小.但是攻击者怎么能控制上传文件的临时文件名呢?
还是is_uploaded_file()做其他检查?
谢谢你放弃了一些亮点.