IntelliJ一直建议我用方法引用替换我的lambda表达式.
两者之间是否存在客观差异?
在lambda中,局部变量需要是final,但实例变量不需要.为什么这样?
我注意到一段时间后使用泛型,这与之间没有太大区别:
public void DoSomething<T>(T t) where T : BaseClass{
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
public void DoSomething(BaseClass t){
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我看到的唯一区别是第一种方法可以添加其他约束,如接口或new (),但如果你只是按我写的方式使用它,我看不出太大的区别.任何人都可以指出选择一个或另一个的重要因素吗?
我创建了一个引用另一个变量B的变量B,它们都是引用类型变量.如果我将B或A设置为null,则另一个仍将指向对象实例,该实例将保持不变.
SomeClass A = new SomeClass();
SomeClass B = A;
B = null; //A still has a valid reference
Run Code Online (Sandbox Code Playgroud)
这也是事实:
SomeClass A = new SomeClass();
SomeClass B = A;
A = null; //B still has a valid reference
Run Code Online (Sandbox Code Playgroud)
但我不希望B引用A引用的实例,我希望B引用A本身.这样,如果B设置为null,则A也将设置为null.这样做有什么优雅,安全(无指针)的方式吗?或者我是否正在尝试做一些违反C#原则的事情?
谢谢.