小编N3w*_*bie的帖子

关于Fibonacci递归的解释

我必须对此有所了解.似乎没有明确解释的好指南.功能树是什么样的?

static long Fib(int n)
{  
    if (n <= 2)  
    {   
        return 1;  
    }  
    return Fib(n - 1) + Fib(n - 2); 
}
Run Code Online (Sandbox Code Playgroud)

假设我这样做Fib(7),我实际上明白它应该是这样的:

事情是,看起来树似乎fib(7)实际意味着fib(6)+ fib(5)应该是真的....但是,如果我理解递归而不是fib(7)实际fib(6)+ fib(5)但是fib(5)还没有操作,因为fib(6)现在将自己称为fib(4)+ fib(3)并且再一次fib(3)将不会执行,因为它fib(4)会自动调用,直到它停止在"停止"状态...而不是什么?

如果fib(7)呼叫fib(6)等等......直到fib(1),所有其他fib(n-2)功能呢?

每次结果如何实际返回并告诉我它的值是fib(7)多少?

c# iteration recursion loops fibonacci

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

C#有枚举枚举

假设我有一个带有一些值的枚举类别:

enum Category {
ProgrammingBooks
CookingBooks
}
Run Code Online (Sandbox Code Playgroud)

我希望每个枚举都有自己的枚举,例如:ProgrammingBooks将会:

enum ProgrammingBooks {
CSharp,
Java,
Cpp
}
Run Code Online (Sandbox Code Playgroud)

我看到一个解决方案暗示:

enum Fauna {
enum Type { MAMMAL, BIRD }

TIGER(Type.MAMMAL), 
LION(Type.MAMMAL), 
PEACOCK(Type.BIRD), 
OWL(Type.BIRD);

private final Type type;

Fauna(Type type) { this.type = type; }

}
Run Code Online (Sandbox Code Playgroud)

用法:

Stream.of(Fauna.values()).filter(f -> f.type == BIRD).toList()
Run Code Online (Sandbox Code Playgroud)

然而,我只是一个初学者,我寻找的东西,即使我不知道,应该学习,不会对我说硬.我不明白我提到的例子(我在StackOverFlow上找到的例子).

c# enums

3
推荐指数
1
解决办法
90
查看次数

C#运算符重载,重写字符串?

我对C#很新鲜当前正在学习运算符重载我正在尝试做这样的事情:

string val = 500; (I can't implicitly)
Run Code Online (Sandbox Code Playgroud)

然后

Number n1 = val;
Run Code Online (Sandbox Code Playgroud)

我设法得到了Number n1 = someintvalue,例如:

Number n1 = 500;
Run Code Online (Sandbox Code Playgroud)

像这样:

public struct Number
{
    public int Value { get; set; }
    public Number(int Val)
    {
        Value = Val;
    }
    public static implicit operator Number(int num)
    {
        return new Number(num);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当试图使数字n1 = val时; (当val是一个字符串时)我只是因为第一行无法编译而无法解决:

string val = 500;
Run Code Online (Sandbox Code Playgroud)

以下不会起作用:

public static implicit operator string(int A)
{
    return new string(A);
}
Run Code Online (Sandbox Code Playgroud)

因为1个错误我无法理解
1)用户定义的转换必须转换为封闭类型或从封闭类型转换

顺便说一句,我得到op过载的想法,
具体情况如下:return …

c# string overloading operator-overloading operator-keyword

1
推荐指数
1
解决办法
284
查看次数

在类中使用结构时,值为零

好吧,简单地说,我现在学习结构(C#的新手)这是我的结构(+ ctor)

public struct BusLine
{
    public int busNumber { get; set; }
    public int passengersNumber { get; set; }
    public double drivePrice { get; set; }
    public double distanceBeginToEnd { get; set; }
    public int stopsNumber { get; set; }

    public BusLine(int _busNumber, int _passengersNumber, double _drivePrice, double _distanceBeginToEnd, int _stopsNumber)
    {
        busNumber = _busNumber;
        passengersNumber = _passengersNumber;
        drivePrice = _drivePrice;
        distanceBeginToEnd = _distanceBeginToEnd;
        stopsNumber = _stopsNumber;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的巴士班

public class Bus
{
    public BusLine Line { get; …
Run Code Online (Sandbox Code Playgroud)

c# struct class

0
推荐指数
1
解决办法
60
查看次数

C#在不同类型的对象之间进行转换

首先,我是C#的新手.我得到
错误是:

附加信息:无法将类型为"UserGUI.MyItems"的对象强制转换为"CommonBookLib.AbstractItem".

他们是两个不同的类:

public class MyItems
{
    public string ItemName { get; set; }
    public int CopyNumber { get; set; }
    public int Guid { get; set; }
    public DateTime? TimePrinted { get; set; }
    public string Category { get; set; }
    public string SubCategory { get; set; }
    public bool? BestSeller { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class AbstractItem : IPropsDetails
{
    public int CopyNumber { get; }
    public string ItemName { get; }
    public …
Run Code Online (Sandbox Code Playgroud)

.net c# types casting

0
推荐指数
1
解决办法
57
查看次数