当前位置:  开发笔记 > 编程语言 > 正文

使用参考参数

如何解决《使用参考参数》经验,为你挑选了1个好方法。

我正在自己学习C#,并希望得到一些帮助.我想创建一个简单的控制台程序,允许用户输入要加倍的数字.它说resultMain方法中的变量是未分配的,但是,我做错了什么?

using System;
class Program
{

    private static void Double(ref int num, ref int result)
    {
        result = num * 2;

    }

    private static int readNumber(string question)
    {
        Console.Write(question);
        string ans = Console.ReadLine();
        int number = int.Parse(ans);
        return number;
    }

    public static void Main()
    {
        int num, result;
        num = readNumber("Enter an integer to be doubled: ");
        Double(ref num, ref result);
        Console.WriteLine("The double of {0} is {1}", num, result);
        Console.WriteLine("Press enter to exit...");
        Console.ReadLine();
    }
}

Yuval Itzcha.. 5

编译器正在大吼大叫,因为它希望在将变量传递给方法调用之前强制初始化变量.

含义:

int num, result;

应该:

int num = 0;
int result = 0;

ref通过简单地使用方法的返回值,可能有更好的方法来完成您正在尝试做的事情,而没有任何参数:

private static int Double(int num)
{
    return num * 2;
}

并像这样消耗它:

public static void Main()
{
    int num = readNumber("Enter an integer to be doubled: ");
    int result = Double(num);
    Console.WriteLine("The double of {0} is {1}", num, result);
    Console.WriteLine("Press enter to exit...");
    Console.ReadLine();
}

这甚至可以(IMO)增强代码的可读性并更好地传达您的意图.



1> Yuval Itzcha..:

编译器正在大吼大叫,因为它希望在将变量传递给方法调用之前强制初始化变量.

含义:

int num, result;

应该:

int num = 0;
int result = 0;

ref通过简单地使用方法的返回值,可能有更好的方法来完成您正在尝试做的事情,而没有任何参数:

private static int Double(int num)
{
    return num * 2;
}

并像这样消耗它:

public static void Main()
{
    int num = readNumber("Enter an integer to be doubled: ");
    int result = Double(num);
    Console.WriteLine("The double of {0} is {1}", num, result);
    Console.WriteLine("Press enter to exit...");
    Console.ReadLine();
}

这甚至可以(IMO)增强代码的可读性并更好地传达您的意图.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有