使用 Kotlin 时,可以使用 apply
来设置现有对象的多个属性并保持代码更简洁,例如,而不是:
person.firstName = "John"
person.lastName = "Doe"
person.phone = "123 456 789"
我们可以用:
person.apply {
firstName = "John"
lastName = "Doe"
phone = "123 456 789"
}
是否有等效于 C# 中的
apply
?最接近的是
using
但据我所知,它不能以这种方式使用。编辑:我知道 C# 中的对象初始值设定项,但我实际上正在寻找可以为现有对象(例如从数据库中获取的对象)完成的事情。
最佳答案
试试这个.... https://dev.to/amay077/kotlins-scope-functions-in-c-pbn
为方便起见,下面粘贴了代码,但上面的链接是源...
static class ObjectExtensions
{
// Kotlin: fun <T, R> T.let(block: (T) -> R): R
public static R Let<T, R>(this T self, Func<T, R> block)
{
return block(self);
}
// Kotlin: fun <T> T.also(block: (T) -> Unit): T
public static T Also<T>(this T self, Action<T> block)
{
block(self);
return self;
}
}
可以这样使用......
var model = new MyModel().Also(m => {
m.Initialize();
m.Load(path);
});
关于c# - Kotlin "apply"在 C# 中等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60686675/