在阅读大量代码时,我发现实现的给定Connection对象IDisposable是在using语句中手动关闭的.当我看到与MySQL相关的代码时,我看到了这一点.
它不需要明确关闭.为什么开发人员会手动关闭它?
using(cnn)
{
//code is here
cnn.close();
}
Run Code Online (Sandbox Code Playgroud)
这是一个好的/有用的措施吗?
我正在为我的下一个项目从Python转向C++.
我知道为什么我不应该而且我知道为什么我应该这样做.别介意辩论.
C++ conventionForVariablesIsCamelCase AndI'mHavingTrouble AcceptingIt as,at_least_for_my_eyes_it's_less_readable_than_the_lower_case_underscored_convention.
你们有没有遇到一篇文章或信息声称程序员应该采用lower_case_underscored约定并放弃camelCase,即使在C++项目中也是如此?或者也许研究表明一个人在科学上比另一个人更具可读性?
我确实在网上看到了一些实现单例类的模式如下:
class singleton {
public:
int a;
void print()
{
std::cout << a << std::endl;
}
} singleton;
int main()
{
// singleton b; COMPILATION ERROR
singleton.a = 3;
singleton.print();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它确实在GCC上编译,但我觉得将实例命名为类的名称并不是一种正确的编码方式.
您#import对头文件有何看法?
如果我导入:
#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
Run Code Online (Sandbox Code Playgroud)
还有更多的标题,偶尔只使用它们,这是浪费吗?它以任何方式减慢了我的应用程序吗?更重要的是,它是否会增加我的应用程序的大小?
谢谢.
嘿,我只是想知道每个人在winForms中用来设置单选按钮的方法.我发现它们非常简单,并且想为控件添加一些颜色或不同的图像.我能想到的唯一方法是实际使用看起来像radiobutton的按钮,并将其设置为true或false.
只是想知道我是否有办法做到这一点,但仍然使用无线电控制.
我遇到过一种情况,由于我调用的其他一些代码区域无法复制Dictionary<TKey, TValue>它返回的内容,因此会出现并发问题:Dictionary似乎包含非法的空键.
我已经修复了底层错误,但为了帮助识别这个问题,如果它将来再次出现,我会添加一些代码,在循环中显式检查null键,处理返回的字典并在事情发生之前抛出进一步.我不确定要抛出哪个异常类,或者如果我定义一个新类,我要确定哪个异类.
我从一开始就在Python中使用的一种做法是减少我创建的变量数量,与我在SAS或Fortran中尝试执行相同操作时创建的数量相比
例如,这是我今晚写的一些代码:
def idMissingFilings(dEFilings,indexFilings):
inBoth=set(indexFilings.keys()).intersection(dEFilings.keys())
missingFromDE=[]
for each in inBoth:
if len(dEFilings[each])<len(indexFilings[each]):
dEtemp=[]
for filing in dEFilings[each]:
#dateText=filing.split("\\")[-1].split('-')[0]
#year=dateText[0:5]
#month=dateText[5:7]
#day=dateText[7:]
#dETemp.append(year+"-"+month+"-"+day+"-"+filing[-2:])
dEtemp.append(filing.split('\\')[-1].split('-')[0][1:5]+"-"+filing.split('\\')[-1].split('-')[0][5:7]+"-"+filing.split('\\')[-1].split('-')[0][7:]+"-"+filing[-2:])
indexTemp=[]
for infiling in indexFilings[each]:
indexTemp.append(infiling.split('|')[3]+"-"+infiling[-6:-4])
tempMissing=set(indexTemp).difference(dEtemp)
for infiling in indexFilings[each]:
if infiling.split('|')[3]+"-"+infiling[-6:-4] in tempMissing:
missingFromDE.append(infiling)
return missingFromDE
Run Code Online (Sandbox Code Playgroud)
现在我在dEtemp.append(blah blah blah)行中分割了我正在处理4次的字符串之一
filing.split('\\')
Run Code Online (Sandbox Code Playgroud)
历史上在Fortran或SAS中,如果我尝试相同的话,我会将我的字符串"切片"一次并为我将要在此表达式中使用的字符串的每个部分分配一个变量.
我不断强迫自己使用表达式而不是先解析一个值并使用该值.我这样做的唯一原因是我通过模仿其他人的代码来学习,但我一直想到这个问题 - 在哪里可以找到一个有说服力的讨论为什么一个比另一个更好
代码比较驱动器上的一组文档和这些文档的源列表,并检查源中的所有文档是否都显示在驱动器上
好的,评论部分更容易阅读,我决定如何回应nosklos答案
将脚本管理器放在母版页中是正确的吗?
我正在努力将一些源代码移植到Linux系统,正如预期的那样,一些东西被打破了.有一件事就是给我一个错误,就是有人有.h和.cpp文件都使用fclose()
编译器抱怨fclose()在头文件中未声明.
这是头文件中的函数声明:
void closeFile() { if (fp) fclose(fp); }
Run Code Online (Sandbox Code Playgroud)
现在,我认为这是一种糟糕的风格,但是 - 他们之前是如何做到这一点的呢?他们的编译器版本是否允许这种行为?
我应该通过在标题中包含stdio来解决这个问题,还是将整个事情移动到cpp?
coding-style ×10
c# ×3
c++ ×3
.net-3.5 ×1
asp.net ×1
c ×1
comparison ×1
exception ×1
fortran ×1
idisposable ×1
iphone ×1
master-pages ×1
objective-c ×1
python ×1
readability ×1
singleton ×1
winforms ×1