Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#斐波那契计算器问题_C#_Fibonacci_Fix Protocol - Fatal编程技术网

c#斐波那契计算器问题

c#斐波那契计算器问题,c#,fibonacci,fix-protocol,C#,Fibonacci,Fix Protocol,我试图得到一个工作斐波那契计算器,但我有一些问题。据我所知,我的代码运行良好,尽管当我输入一个单词时它崩溃了。我不确定如何才能让它为我工作,所以它只接受数字。提前感谢:D public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click1(object sender, Routed

我试图得到一个工作斐波那契计算器,但我有一些问题。据我所知,我的代码运行良好,尽管当我输入一个单词时它崩溃了。我不确定如何才能让它为我工作,所以它只接受数字。提前感谢:D

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }


    private void Button_Click1(object sender, RoutedEventArgs e)
    {

        //Fibonacci

        string output = String.Empty;



        double result;
        double z = 0;
        double x = 1;
        double y = double.Parse(FibonacciAsText.Text);
        if (double.TryParse(FibonacciAsText.Text, out result))
        {
            if (y == 1)
                output = 1.ToString();
        }
        else if (y == 0)
        {
            output = 0.ToString();
        }
        for (double w = 0; w < y - 1; w++)
        {
            result = z;
            z = x;
            x = result + x;
            output = x.ToString();
        }
        Fibonacci.Text = output;
    }
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
私有无效按钮\u单击1(对象发送者,路由目标)
{
//斐波那契
字符串输出=string.Empty;
双重结果;
双z=0;
双x=1;
double y=double.Parse(FibonacciAsText.Text);
if(double.TryParse(FibonacciAsText.Text,out结果))
{
如果(y==1)
输出=1.ToString();
}
如果(y==0),则为else
{
输出=0.ToString();
}
对于(双w=0;w
这将退出方法,不允许代码完成:

double y;

if (!double.TryParse(FibonacciAsText.Text, out y))
{
    Fibonacci.Text = "N/A";
    return;
}

基本上,它是检查您是否有一个有效的数字。如果是,它会将其设置为y(类似于解析)。但是,如果没有成功,它会在“return”处退出该方法。

您需要首先验证输入。如果您使用的是文本框..应该有一个只接受数字的设置。

在后端..您可以使用下面的代码检查输入是否为数字

int n;
bool isNumeric = int.TryParse(FibonacciAsText.Text, out n);

if(isNumeric)
{
Your calculator code
}

double.Parse(FibonacciAsText.Text)
无法解析word
double y=double.Parse(FibonacciAsText.Text);
是问题所在。在这里也使用tryparse。@ChetanRanpariya当我这样做时,我会得到以下错误“方法'tryparse'不重载1个参数”请看Cory的答案。如果这不起作用,请告诉我们。请看wpf:或winforms:尽管现在如果我在过去的数字后输入一个单词,它仍然会输出过去的数字,这取决于您的代码的读取方式。我看不到更新的代码。它不应该像“单词”一样长位于FibonacciAsText文本框
私有无效按钮\u Click1(对象发送方,路由目标e){//Fibonacci字符串输出=string.Empty;双结果;双z=0;双x=1;双y;如果(!double.TryParse(FibonacciAsText.Text,out y))return;如果(y==1)output=1.ToString();
我输入了9,它给了我尝试过的fish输出,它仍然显示过去的输出,这是因为您没有清除过去的输出。在“return”之后它没有做任何事情。包括清除文本框。如果你想清除输出,你需要明确告诉它。请参阅我的更新。