相关疑难解决方法(0)

未定义或导入预定义类型'System.ValueTuple'2'

我安装了Visual Studio 15 Preview 3并尝试使用新的元组功能

static void Main(string[] args)
{
    var x = DoSomething();
    Console.WriteLine(x.x);
}

static (int x, int y) DoSomething()
{
    return (1, 2);
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,我收到错误:

未定义或导入预定义类型'System.ValueTuple'2'

根据博客文章,这个功能默认情况下应该"打开".

我做错了什么?

c# c#-7.0 visual-studio-2017

362
推荐指数
4
解决办法
9万
查看次数

从C++函数返回多个值

有没有从C++函数返回多个值的首选方法?例如,假设一个函数分割两个整数并返回商和余数.我经常看到的一种方法是使用参考参数:

void divide(int dividend, int divisor, int& quotient, int& remainder);
Run Code Online (Sandbox Code Playgroud)

一种变化是返回一个值并通过引用参数传递另一个值:

int divide(int dividend, int divisor, int& remainder);
Run Code Online (Sandbox Code Playgroud)

另一种方法是声明一个包含所有结果的结构并返回:

struct divide_result {
    int quotient;
    int remainder;
};

divide_result divide(int dividend, int divisor);
Run Code Online (Sandbox Code Playgroud)

这些方式中的一种通常是首选,还是有其他建议?

编辑:在现实世界的代码中,可能会有两个以上的结果.它们也可以是不同类型的.

c++

219
推荐指数
13
解决办法
30万
查看次数

如何用out参数编写异步方法?

我想用out参数编写一个异步方法,如下所示:

public async void Method1()
{
    int op;
    int result = await GetDataTaskAsync(out op);
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办GetDataTaskAsync

c# async-await

148
推荐指数
9
解决办法
8万
查看次数

例外或错误代码的约定

昨天我和同事讨论了什么是首选的错误报告方法.主要是我们讨论了异常或错误代码的使用,以报告应用程序层或模块之间的错误.

您使用什么规则来决定是否抛出异常或返回错误代码以进行错误报告?

language-agnostic language-design

112
推荐指数
10
解决办法
5万
查看次数

有没有办法可以从一个方法返回多个整数?

我有这样的方法:

private double GetHeight()
{
    return 2;
}
Run Code Online (Sandbox Code Playgroud)

但是我希望能够返回两个不同的数字,例如2和3。在C#中有什么方法可以实现?

c#

28
推荐指数
2
解决办法
1492
查看次数

从方法返回多个结果

我尝试使用Try Catch块提高我的技能并更好地处理错误.

我有一个执行常见任务的类,在这种情况下检索Facebook AccessToken.如果成功,我想返回AccessToken字符串,如果不是,我想返回错误消息.这些都是字符串,所以没问题.但是当检查代码调用端的返回值时,如何有效地执行此操作?

这就像我需要返回2个值.在成功尝试的情况下,返回= true,"ACESSCODEACXDJGKEIDJ",或者如果失败,则返回= false,"Ooops,出现错误"+ ex.ToString();

然后检查返回值很容易(理论上).我可以想到返回一个true/false返回,然后为字符串设置一个Session变量.

什么是从方法返回多个结果的方法?

c# return

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

函数是否可以返回两个值?

函数是否可以返回两个值?如果两个值都是相同的类型,则可以使用数组,但是如何返回两个不同的类型值?

c#

13
推荐指数
5
解决办法
1万
查看次数

C#是否支持多个返回值?

这是一个非常基本的问题,如果我正在考虑做的事情很复杂/涉及,那么我不希望你详细说明......我读过这可能涉及结构或哈希或其他一些可怕的程序我还没到.如果是这样,我相信它会很快得到我.

学习类,方法和返回值.

我想让我的班级/方法返回当前小时和分钟.很简单,真的.这是正确构造还是正确构造?

class MyClass
{
    public int GetHour (int hr, int min)
    {
        DateTime dt = DateTime.Now;
        int hour = dt.Hour;
        int minute = dt.Minute;

        return hour;
        return minute;

    }
}
Run Code Online (Sandbox Code Playgroud)

并且,从Main()以下方面调用它:获得一些错误(No overload for methodUnreachable code detected)

static void Main ( string[] args )
{
    MyClass mc = new MyClass ();
    Console.WriteLine ("Hour: {0} \n Minute: {1}", mc.GetHour());   
    Console.ReadLine ();
}
Run Code Online (Sandbox Code Playgroud)

问题是:我关闭了吗?

c# methods return-value

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

如何用C#创建一个带有属性的简单Object,就像使用javascript一样

我正在使用Xamarin,我需要看起来像这样的东西:

public Colors = new object() {
  Blue = Xamaring.Color.FromHex("FFFFFF"),
  Red = Xamarin.Color.FromHex("F0F0F0")
}
Run Code Online (Sandbox Code Playgroud)

所以我以后可以这样做:

myObject.Colors.Blue // returns a Xamarin.Color object
Run Code Online (Sandbox Code Playgroud)

但是,当然,这不编译.显然,我需要为此创建一个完整的新类,我真的不想做,也不认为我应该这样做.在javascript中,我可以做这样的事情:

this.colors = { blue: Xamarin.Color.FromHex("..."), red: Xamarin... }
Run Code Online (Sandbox Code Playgroud)

C尖锐的东西可以帮我快速实现吗?谢谢

.net javascript c# collections object

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

具有多种返回类型的方法

我已经查看了许多与此类似的问题,但没有一个真正涉及到我想要做的事情.我要做的是从外部源读取一个变量列表,其中还包括它们的数据类型到字符串数组中:

例:

ID/Key      Type    Value/Data; 
varName1    bool    true;
varName2    string  str;
varName3    int     5;
Run Code Online (Sandbox Code Playgroud)

然后我将这些对象存储到字典中作为包含多个字符串的对象,ID也用作键.

我想要做的是现在创建一个方法,该方法使用switch语句将字符串转换为正确的数据类型,并返回它而不必在方法调用中指定任何内容.该函数应如下所示:

public ??? Method(string key)
{
    if(dictionary.ContainsKey(ID))
    {
        Var temp = dictionary[ID];

        switch (temp.Type)
        {
            case "bool":
                return Convert.ToBoolean(temp.Value);

            case "int"
                return Convert.ToInt(temp.Value);

            case "string"
                return temp.Value;
        }
    }

    return "NULL"; 
}
Run Code Online (Sandbox Code Playgroud)

方法调用应该如下所示:

int x = Method(string key);
string word = Method(string key);
bool isTrue = Method(string key);
Run Code Online (Sandbox Code Playgroud)

也许我错过了一些东西,但我还没有找到真正做到这一点的东西.任何和所有关于这一点的想法也是受欢迎的.

c# generics methods return

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