StyleCop告诉我,我不应该为成员变量添加前缀m_
.这是c#编码风格的官方线吗?我猜这是来自MS.有人对这个有了解吗??
默认情况下,StyleCop不允许使用下划线,m_等标记本地类字段,而使用'this'.字首.使用'this'的好处.它同样适用于所有元素类型,包括方法,属性等,而不仅仅是字段,使得对类成员的所有调用都可以立即识别,无论使用哪个编辑器来查看代码.另一个优点是它在实例成员和静态成员之间创建了一个快速,可识别的区别,它不会被加上前缀.
我是perl的新手,不知道如何实现以下目标.我正在读取一个文件,并将这些行放在一个名为$ tline的变量中.接下来,我试图从$ tline中替换一些字符.如果$ tline有一些特殊字符,如(,?,=等),这个替换会失败.如何从这个变量$ tline中转义特殊字符?
if ($tline ne "") {
$tline =~ s/\//\%;
}
Run Code Online (Sandbox Code Playgroud)
编辑
对不起困惑.这是我想要做的.
$tline =~ s/"\//"\<\%\=request\.getContextPath\(\)\%\>\//;
Run Code Online (Sandbox Code Playgroud)
这适用于大多数情况.但是当输入文件有?在它,它是失败的.
我注意到LINQ to Objects有一个GroupBy方法.鉴于此,我想知道是否有人可以使用LINQ构建内存中对象组列表的案例与SQL Server执行分组?
我有点理解String Builder类的动机,但是所有语言都有一个吗?他们应该吗?我正在考虑PHP,Perl,Python和Ruby.我知道C#和Java.如果其他人不这样做,为什么不呢?他们没有遭受同样的实施问题吗?或者他们不关心?
例如,如果我删除一个表然后回滚事务是重新创建的表吗?
可以在事务中进行的架构更改有哪些限制?
如果以上内容取决于Sql Server的版本,请说明......
背景
我正在考虑使用一些"select into"语句来创建表,然后需要删除所有上述表作为工作流的后续部分.
这些表中没有一行会有几十行.
我有一个关于C#中命名约定的问题,我认为这些约定不包括在大多数先前提出的问题或MSDN命名指南等常用资源中.大多数现有的命名约定都集中在框架和其他类消耗的东西上.这可能有点不同.
你怎么命名Main()所在的类?它与超类有什么关系?
假设你是一个初出茅庐的程序员,你就像这个网站一样创建了一个小应用程序.你可能会做这样的事情.
// the title of the class happens to be the title of the project
namespace FogCreek {
public class StackOverflow {
public static Main() { ... }
}
}
Run Code Online (Sandbox Code Playgroud)
但随后你决定在你成长的过程中重构你的内脏并创建更多的Stack网站,每个网站都会显示自己的命名空间.
namespace FogCreek.StackSites.StackOverflow {
public class WhatDoICallThis : StackExchangeSite {
public static Main() { ... }
}
}
// elsewhere in another project...
namespace FogCreek {
public class StackExchangeSite {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我犹豫不决称它为StackOverflow,因为它的全名是FogCreek.StackSites.StackOverflow.StackOverflow.这有点多余吗?
另外,StackExchangeSite应该在FogCreek中的自己的命名空间中吗?或者它应该"高于"源自它的项目?
Company.Foobar.Widget
-> Company.Foobar.Widget.RoundWidget
-> Company.Foobar.Widget.SquareWidget
vs
Company.Foobar.Widget.BaseWidget
-> Company.Foobar.Widget.RoundWidget
-> Company.Foobar.Widget.SquareWidget …
Run Code Online (Sandbox Code Playgroud) 拥有主键列是否意味着该列上有索引?如果是这样,它是什么样的指数?
鉴于最近的Gawker Media密码泄漏,我意识到许多用户共享相同的密码.为了帮助鼓励更强的密码,如果密码在所有用户中都是唯一的,那么它会有用吗?
我能想到的一个直接缺点(除了帐户创建性能?)是能够知道某人正在使用给定的字符串作为密码.这种知识与用户列表相结合可能非常危险.
有没有办法减轻这种负面影响,同时保留不允许重复密码的所谓好处?
它有点像XKCD踢机器人,你不能重复短的,非原创的句子,如"yah"或"lol".
编辑^ 2:我认为你可以独特 - 如果反对哈希,但正如有人指出,用不同的盐,这将没有预期的效果.好眼!
假设你有一个Person
对象,它有一个方法promote()
,将它转换为一个Captain
对象.你怎么称呼这种方法/互动?
它也感觉像是反转:
myCaptain = new Captain(myPerson);
Run Code Online (Sandbox Code Playgroud)
编辑:感谢所有的回复.我遇到这种模式的原因(在Perl中,但在任何地方相关)纯粹是为了方便.在不知道任何实现交易的情况下,你可以说这个Captain
类"有一个" Person
(我意识到这可能不是最好的例子,但要确保它不是一个子类).
实施我假设:
// this definition only matches example A
Person.promote() {
return new Captain(this)
}
personable = new Person;
// A. this is what i'm actually coding
myCaptain = personable.promote();
// B. this is what my original post was implying
personable.promote(); // is magically now a captain?
Run Code Online (Sandbox Code Playgroud)
所以,从字面上看,它只是构建一个方便的方法Captain
.我只是想知道这种模式是否在野外被看到并且它是否有名字.而且我猜是的,它并没有真正改变课程,因为它返回了另一个课程.但它理论上可以,因为我并不真正关心原作.
Ken ++,我喜欢你指出一个用例.有时候改变某些东西真的很棒,比如一个记忆敏感的环境.
c# ×3
sql ×3
sql-server ×2
.net ×1
coding-style ×1
database ×1
group-by ×1
indexing ×1
oop ×1
perl ×1
primary-key ×1
regex ×1
security ×1
string ×1
stylecop ×1
transactions ×1