今天我与同事讨论并得出以下几点.如果一切正确或需要进行一些修改,请注意点亮.
以下两行都相同.但是有什么隐藏的区别吗?应该首选哪一个?
Thread t1 = new Thread(aMethod);
Thread t2 = new Thread(new ThreadStart(aMethod));
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有两个makefile,用于本机和交叉编译.它们之间唯一的区别是编译器名称:
# makefile CC = g++ ...
# makefile-cc CC = arm-linux-gnueabihf-g++ ...
为了进行本机编译,我执行make
,进行交叉编译,我执行make -f makefile-cc
.我希望有一个makefile
,应该使用make
本机编译执行,并make cross
进行交叉编译.这样做的正确语法是什么,例如:
# makefile (C-like pseudo-code) if cross CC = arm-linux-gnueabihf-g++ else CC = g++
应该首选哪两个?
有一些方法由A,B和C类调用.
这些方法是否应该封装在D类(A,B和C的基础)中?
要么
如果将这些方法封装在类U和其他类创建中,则它的对象是根据需要使用这些方法.
在什么基础上应该做出决定?
谢谢.
为什么下线打印错误?我认为它应该打印成真.
TimeZone.getTimeZone("UTC+5:30").hasSameRules(TimeZone.getTimeZone("GMT+5:30")
Run Code Online (Sandbox Code Playgroud) 嗨当我使用以下代码时:
myManualResetEvent.Dispose();
Run Code Online (Sandbox Code Playgroud)
编译器给出了这个错误:
'System.Threading.WaitHandle.Dispose(bool)' is inaccessible due to its protection level.
Run Code Online (Sandbox Code Playgroud)
然后以下行正常工作:
((IDisposable)myManualResetEvent).Dispose();
Run Code Online (Sandbox Code Playgroud)
它是正确的处理方式,或者在运行时它可能会在某些场景中崩溃.
谢谢.
这里http://www.parashift.com/c++-faq-lite/multiple-inheritance.html节[25.14]说:
要执行的第一个构造函数是层次结构中任何位置的虚拟基类.
我尝试使用以下程序验证它:
A (pure virtual)
|
B
|
C
(virtual)/ \ (virtual)
E D
\ /
F
|
G (pure virtual)
|
H
Run Code Online (Sandbox Code Playgroud)
每个班级都有一个c'tor和virtual d'tor.输出如下:
A
B
C
E
D
F
G
H
~H
~G
~F
~D
~E
~C
~B
~A
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)
但根据引用,应首先执行虚拟基类构造函数.
我做错了什么?
编辑:要清除我的问题,根据我的理解,这种行为与基类是否是虚拟无关.但引用坚持Virtual Base类.我清楚还是有什么可疑的?
谢谢.
有没有办法在 Mock 上列出所有模拟方法(设置)?
可以说,我创建模拟如下:
Mock<IAnInterface> aMock = new Mock<IAnInterface>();
aMock.Setup(am => am.Execute()).Returns(true);
Run Code Online (Sandbox Code Playgroud)
现在,我需要查找是否Execute
已设置aMock
?
Process p=Runtime.getRuntime().exec("sudo rm -rf /home/ftp");
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
bw.write("qwerty");
bw.flush();
Run Code Online (Sandbox Code Playgroud)
我已经编写了这段代码,但它不起作用
我试图找到EOL
一个文件的字符.我尝试了以下代码段:
java.io.FileInputStream inputStream = null;
inputStream=new java.io.FileInputStream (inputFile.trim());
java.util.Properties p = new java.util.Properties(System.getProperties());
p.load(inputStream);
System.setProperties(p);
String lineSeperator=System.getProperties().getProperty("line.separator");
System.out.println("--"+lineSeperator);
Run Code Online (Sandbox Code Playgroud)
我得到的结果总是\r\n
,即使我正在阅读一个Linux发起的文件,其中分隔符应该是\n
.
我究竟做错了什么 ?
c# ×5
java ×4
c++ ×2
.net ×1
.net-4.0 ×1
base ×1
c ×1
constructor ×1
derived ×1
destructor ×1
dispose ×1
file-io ×1
g++ ×1
gnu-make ×1
idisposable ×1
inheritance ×1
moq ×1
static ×1
timezone ×1