长长和长长有什么区别?他们都不能使用12位数字(600851475143),我忘记了什么吗?
#include <iostream>
using namespace std;
int main(){
long long a = 600851475143;
}
Run Code Online (Sandbox Code Playgroud) 我正在制作一个从服务器获取文件名列表的方法,但我遇到了一个我无法回答的问题.
该方法返回两件事:
SftpResult是与各种的返回代码的枚举.在这三个签名中:
public static ArrayList GetFileList(string directory, out SftpResult result)
public static SftpResult GetFileList(string directory, out ArrayList fileNames)
public static SftpFileListResult GetFileList(string directory)
(其中SftpFileListResult是an SftpResult和an 的复合对象ArrayList)
这是首选,为什么?
在32位机器上sizeof,即使它是对double的引用,我总是得到4个字节的引用,所以它真正存储在这4个字节中.
编辑:
class A{
public:
double& a;
};
int main(){
cout << sizeof(A) << endl; // this will print out 4
}
Run Code Online (Sandbox Code Playgroud) 所以我是C#的新手,我很难理解out.而不是仅仅从函数返回一些东西
using System;
class ReturnTest
{
static double CalculateArea()
{
double r=5;
double area = r * r * Math.PI;
return area;
}
static void Main()
{
double output = CalculateArea();
Console.WriteLine("The area is {0:0.00}", output);
}
}
Run Code Online (Sandbox Code Playgroud)
与此相比
using System;
class ReturnTest
{
static void CalculateArea(out double r)
{
r=5;
r= r * r * Math.PI;
}
static void Main()
{
double radius;
CalculateArea(out radius);
Console.WriteLine("The area is {0:0.00}",radius );
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
第一个是我一般会这样做的.我有可能想要使用out而不仅仅是返回语句吗?我理解ref …
我刚刚为我编写的方法添加了一个out bool参数,以便在我的UI中收到警告.我已经使用了out而不是让方法本身返回false/true,因为这意味着DoSomething失败/成功.我的想法是warnUser会指出警告实际上是什么,而不必查看方法的实现.
原始代码
public void DoSomething(int id, string input);
Run Code Online (Sandbox Code Playgroud)
新规范
public void DoSomething(int id, string input, out bool warnUser);
Run Code Online (Sandbox Code Playgroud)
我正在使用Moq来测试此代码,但它不支持out/ref参数,因为Lambda表达式不支持它们
测试代码
mockService.Verify(It.IsAny<int>(), It.IsAny<string>(), It.IsAny<bool>());
Run Code Online (Sandbox Code Playgroud)
因此,采用了参数不好的做法,如果是的话我该怎么办呢?