我现在在大学,他们非常注重遵循他们的标准.
他们告诉我这个:
所有课程必须以大写字母开头
正确
public class MyClass {}
Run Code Online (Sandbox Code Playgroud)
不正确
public class myClass {}
public class _myClass {}
Run Code Online (Sandbox Code Playgroud)
所有方法都必须以小写字母开头
正确
public void doSomething() {}
Run Code Online (Sandbox Code Playgroud)
不正确
public void DoSomething() {}
public void _doSomething() {}
Run Code Online (Sandbox Code Playgroud)
所有变量必须以小写字母开头
正确
string myString;
Run Code Online (Sandbox Code Playgroud)
不正确
string MyString;
string _myString;
Run Code Online (Sandbox Code Playgroud)
然而,在我编程的最后一年,我发现人们正在使用不同的规则.如果只是少数人使用不同的规则并不重要,但几乎在任何地方我都看到这些不同的实践被使用.
所以我只是想知道上述标准背后的原因是什么以及为什么使用其中一些其他标准:(它们是错误/旧标准吗?)
我见过的大多数方法都是以大写字母而不是小写字母开头的 - 几乎是我从导入的命名空间中使用的任何微软方法.这可能是我见过的最常见的一个我不明白的
很多人使用_作为类变量.
我在变量上看过大写字母.string MyString;
我知道我也错过了一些,如果你能想到你可以添加的任何内容,并给出一个解释,这将是有帮助的.我知道每个人都在开发自己的编码风格,但其中许多实践都有其背后的理由,我宁愿坚持最有意义的东西.
谢谢,
马特
我有一个bash脚本,它在两个时间戳之间切出一个日志文件的一部分,但由于文件的大小,运行需要很长时间.
如果我要在Perl中重写脚本,我可以实现显着的速度提升 - 或者我是否必须转向像C这样的东西才能实现这一目标?
#!/bin/bash
if [ $# -ne 3 ]; then
echo "USAGE $0 <logfile(s)> <from date (epoch)> <to date (epoch)>"
exit 1
fi
LOGFILES=$1
FROM=$2
TO=$3
rm -f /tmp/getlogs??????
TEMP=`mktemp /tmp/getlogsXXXXXX`
## LOGS NEED TO BE LISTED CHRONOLOGICALLY
ls -lnt $LOGFILES|awk '{print $8}' > $TEMP
LOGFILES=`tac $TEMP`
cp /dev/null $TEMP
findEntry() {
RETURN=0
dt=$1
fil=$2
ln1=$3
ln2=$4
t1=`tail -n+$ln1 $fil|head -n1|cut -c1-15`
dt1=`date -d "$t1" +%s`
t2=`tail -n+$ln2 $fil|head -n1|cut -c1-15`
dt2=`date -d "$t2" +%s`
if [ $dt …Run Code Online (Sandbox Code Playgroud) 我正在为一个我正在研究的可扩展卡片游戏引擎创建一个DSL,用boo.
我有一个卡宏,它为新类型的卡创建一个类,并在构造函数中初始化一些属性.该宏有一些用于设置其他内容的子宏.基本上我想让它变成这样的东西:
card 'A new card':
type TypeA
ability EffectA:
// effect definition
Run Code Online (Sandbox Code Playgroud)
进入这个:
class ANewCard (Card):
def constructor():
Name = "A new card"
Type = Types.TypeA
AddEffect(EffectA())
class EffectA (Effect):
// effectdefintion
Run Code Online (Sandbox Code Playgroud)
效果肯定需要是一个类,因为它将被传递(它是一个战略模式).
到目前为止,我有这个简单的骨架:
macro card:
yield [|
class $(ReferenceExpression(card.Arguments[0])) (Card):
def constructor():
Name = $(card.Arguments[0])
|]
Run Code Online (Sandbox Code Playgroud)
现在,我不知道我应该怎么做card.Body使能力宏添加代码到构造函数,同时还生成一个嵌套类.有什么想法吗?这可以用当前的语言功能完成吗?
我有一个应用程序可以通过各种方法和各种格式接收数据.我有可插拔的接收器,以某种方式获取数据(例如通过轮询邮箱,监听HTTP请求,监视目录的内容等),将其与MIME类型相关联,然后将其传递给包装如下:
public class Transmission {
private String origin; // where the data came from
private String destination; // where the data was sent to
private String mime; // the MIME type of the data
private BLOB data; // this is what I need an appropriate type for
}
Run Code Online (Sandbox Code Playgroud)
在线下,数据由专业处理程序根据mime字段的值进行处理.我期待像ZIP文件,Excel文档,SOAP,通用XML,纯文本等等.此时,代码应该与数据中的内容无关.这个data领域的适当类型是什么?Object?InputStream?Byte[]?
我有一个WinMo应用程序,我想从存储卡打开一个文件.该文件不在根目录中,而是在文件夹结构中.我认为OpenFileDialog就像在常规.NET下一样.但它不能让我浏览文件夹.我看起来很蹩脚.或者我是非常愚蠢的?
我有一个方法:
public void StoreUsingKey<T>(T value) where T : class, new() {
var idModel = value as IIDModel;
if (idModel != null)
Store<T>(idModel);
AddToCacheUsingKey(value);
}
Run Code Online (Sandbox Code Playgroud)
我想根据value参数的实现选择性地调用以下方法IIDModel.
public void Store<T>(T value) where T : class, IIDModel, new() {
AddModelToCache(value);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉Store<T>了value从参数StoreUsingKey<T>工具IIDModel?或者我是以错误的方式来做这件事的?
丰富
回答
new()从每个方法中删除约束允许代码工作.问题在于我试图将接口作为可以实例化的对象传递出去.
是否有一个curl命令选项只显示一个百分比输出到shell而不是所有这些,例如:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12.4M 100 12.4M 0 0 4489k 0 0:00:02 0:00:02 --:--:-- 4653k
Run Code Online (Sandbox Code Playgroud)
也许我可以设置一个标志?如果没有,通过正则表达式以某种方式管道它,以显示我只是持续更新百分比?
谢谢大家
我有一个带有很多屏幕的应用程序(接着是MVC模式),我希望能够以时尚的方式接收最后一个按键在x秒前被按下的信息(120秒让我们说).有没有标准的方法来做这个或我必须启动一个计时器,每次当我按下一个键我必须覆盖一个变量,在计时器中我必须检查该时间和当前时间之间的差异时间?
我需要在visual studio中对sqlite数据库执行批量访问.有人知道怎么做这个吗?
我知道 XSL 中有current()检索当前节点的功能,但是有没有办法能够引用当前位置的“上一个”和“下一个”节点?
c# ×2
.net ×1
bash ×1
boo ×1
command-line ×1
comparison ×1
constraints ×1
curl ×1
generics ×1
interface ×1
java ×1
java-me ×1
linux ×1
macros ×1
optimization ×1
performance ×1
perl ×1
shell ×1
sqlite ×1
xslt ×1