相关疑难解决方法(0)

长期和长期之间有什么区别

长长和长长有什么区别?他们都不能使用12位数字(600851475143),我忘记了什么吗?

#include <iostream>
using namespace std;

int main(){
  long long a = 600851475143;
}
Run Code Online (Sandbox Code Playgroud)

c++ int long-integer

24
推荐指数
3
解决办法
3万
查看次数

返回代码或输出参数?

我正在制作一个从服务器获取文件名列表的方法,但我遇到了一个我无法回答的问题.

该方法返回两件事:

  • 一个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)

这是首选,为什么?

c# pass-by-reference

18
推荐指数
2
解决办法
766
查看次数

为什么引用大小总是4个字节 - c ++

在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++ reference

12
推荐指数
2
解决办法
1万
查看次数

C#out参数vs返回

所以我是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 …

c# return reference out

9
推荐指数
2
解决办法
7399
查看次数

正在使用"淘汰"的不良做法

我刚刚为我编写的方法添加了一个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)

因此,采用参数不好的做法,如果是的话我该怎么办呢?

c# lambda anti-patterns moq

8
推荐指数
2
解决办法
2543
查看次数

标签 统计

c# ×3

c++ ×2

reference ×2

anti-patterns ×1

int ×1

lambda ×1

long-integer ×1

moq ×1

out ×1

pass-by-reference ×1

return ×1