我必须对此有所了解.似乎没有明确解释的好指南.功能树是什么样的?
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)多少?
假设我有一个带有一些值的枚举类别:
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#很新鲜当前正在学习运算符重载我正在尝试做这样的事情:
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#的新手)这是我的结构(+ 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#的新手.我得到
的错误是:
附加信息:无法将类型为"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)