前言
一段时间以来,我一直在几乎所有类字段中使用readonly修饰符.我将它用于List <T>成员,IDisposeable成员,整数,字符串等......除了我打算改变的值类型之外的所有东西.即使我通常想在Dispose()上取消成员,我也倾向于这样做.恕我直言不需要if语句来测试null或处理条件的优点大大超过了"可以"多次处理的对象中的"潜在"问题.
问题
你什么时候使用readonly,或者是吗?
您或您的公司是否有关于readonly使用的最佳实践和/或编码标准?
我很想听听你对以下样本课的看法,一般概念是不是很好的做法?
class FileReaderWriter : IFileReaderWriter, IDisposable
{
private readonly string _file;
private readonly Stream _io;
public FileReaderWriter(string path)
{
_io = File.Open(_file = Check.NotEmpty(path), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
}
public void Dispose() { _io.Dispose(); }
...
}
Run Code Online (Sandbox Code Playgroud) 这是我想要使用的代码:
public enum Days { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
[EnumHelper(typeof(Days))]
public Days DayOfWeek { get; set; }
Run Code Online (Sandbox Code Playgroud)
EnumHelper看起来像:
[AttributeUsage(AttributeTargets.Property,AllowMultiple=true)]
public class EnumHelper : Attribute
{
public Type MyEnum { get; set; }
public EnumHelper(Type enum)
{
MyEnum = enum;
}
}
Run Code Online (Sandbox Code Playgroud)
我在EnumHelper(Days)上遇到的错误是"Enum Name此时无效".我做错了什么,还是不能做到这一点?
更多信息
我试图通过枚举(天),并随机取回其中一个值.
NEVERMIND:我这部分过于复杂.
我收到了以下错误.
libxml/tree.h没有这样的文件或目录
我已经添加libxml2.dylib到我的项目中,但是我遇到了这种麻烦.请帮我.
注意:我不是在谈论事件处理程序的名称。我说的是事件本身的名称。
我倾向于为事件命名,以便它们描述事件引发之前发生的情况。形容词往往占主导地位(CLICKED、SAVED、CHANGED、LOADED 等)。
一些有能力的同行最近向我展示了命名事件来描述即将发生的事情(响应事件)的想法。动词在这里往往占主导地位(SAVE_DATA、GET_MEMBER、LOAD_RESULTS、SHOW_REPORT——同样,这些是事件的名称,而不是从它们调用的处理程序或方法)。
我认为,当您同时负责事件和处理程序时,尤其是当您只需要对该事件做出一个响应时,后者效果足够好。相反,如果您无法看到或控制事件,则无法很好地命名事件以匹配后面的动词(处理程序)。
您如何命名事件,为什么?一种约定是否足够(至少在给定的商店中),或者根据代码/项目的大小和范围进行更改是否更明智?
我想获得一些关于这些工具的反馈:
我正在使用asp:Hyperlink根据URL中的参数动态呈现链接图像.我需要能够为渲染的img添加一个CSS类,并且无法弄清楚如何做到这一点.
我知道我可以在asp:Hyperlink中添加"CssClass ="blah"",但在渲染的HTML中,只有a接收css类.像这样:
<a href="assets/images/blah.jpg" class="blah" id="ctl00_LeftContent_alternateImage4">
<img style="border-width: 0px;" src="assets/images/blahThumbnail.jpg"/>
</a>
Run Code Online (Sandbox Code Playgroud)
我发现了另一个允许我为控件添加内联样式的问题,但是我想在asp:hyperlink生成的img中添加一个类.
有可能做类似这个答案的事情:
myControl.Attributes.Add("style", "color:red");
Run Code Online (Sandbox Code Playgroud)
喜欢,也许?:
myControl.img.Attributes.Add("class", "blah");
Run Code Online (Sandbox Code Playgroud) 我已经看到了一个解决方案,无需为PHP 5.3重写ereg函数的使用:PHP 中eregi()的良好替代品
它用 if(!function_exists....
是否有可以这种方式使用的功能ereg_replace?
ereg_replace("<!--.*-->","",$str);
ereg_replace("[^a-z,A-Z]", "", $str);
Run Code Online (Sandbox Code Playgroud) 任何人都可以指出我为什么我的XSD中的独特元素不强制独特性?这应该抛出一个错误,因为最后一个ScreenResult元素不包含该Type属性的唯一值.我还应该注意到,我真正强迫其中一个Type内部ScreenResults(ScreenResult需要存在3次,有3种类型的屏幕,我需要独特性)所以如果有更好的方法来实现这一点,我'也是为了这一切.
谢谢.
这是我的XML片段:
<ScreenResults>
<ScreenResult Type="Screen Type A">1</ScreenResult>
<ScreenResult Type="Screen Type B">1</ScreenResult>
<ScreenResult Type="Screen Type B">2</ScreenResult>
</ScreenResults>
Run Code Online (Sandbox Code Playgroud)
这是我的XSD片段(还要注意我的原始XSD片段跨越多个文件,但我已经验证了我的所有命名空间都是正确的):
<xs:element name="ScreenResults" type="import:ScreenResults" minOccurs="0" maxOccurs="1">
<xs:unique name="UniqueScreenResults">
<xs:selector xpath="ScreenResult" />
<xs:field xpath="@Type" />
</xs:unique>
</xs:element>
<!--============ ScreenResults =============-->
<xs:complexType name="ScreenResults">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="ScreenResult" minOccurs="3" maxOccurs="3">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="enum:ScreenResult">
<xs:attribute name="Type" type="enum:ScreenType" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<!--============= ScreenType =============-->
<xs:simpleType name="ScreenType">
<xs:restriction base='xs:token'>
<xs:enumeration value='Screen Type …Run Code Online (Sandbox Code Playgroud) 每次我实例化一个对象/从一个类中调用一个方法时,我是否必须查看java api?另外,我是否总是必须知道java api中哪些类,哪些不是?
黑莓JDE不包括java.util.ArrayList,即使它知道java.util吗?那是怎么回事?BB有同等级吗?我真的不想使用数组,因为我正在处理未知数量的对象.为什么黑莓JDE会离开这么多?
c# ×3
attributes ×2
.net ×1
api ×1
arraylist ×1
asp.net ×1
blackberry ×1
coding-style ×1
collections ×1
css ×1
enums ×1
events ×1
exception ×1
iphone ×1
java ×1
jde ×1
libxml2 ×1
objective-c ×1
pep8 ×1
php ×1
php-5.3 ×1
posix-ere ×1
pychecker ×1
pyflakes ×1
pylint ×1
python ×1
unique ×1
xcode ×1
xsd ×1