c# - Kotlin 在 C# 中“应用”等价物
问题描述
使用 Kotlin 时,可以使用apply
设置现有对象的多个属性并保持代码更简洁,例如,而不是:
person.firstName = "John"
person.lastName = "Doe"
person.phone = "123 456 789"
我们可以用:
person.apply {
firstName = "John"
lastName = "Doe"
phone = "123 456 789"
}
是否有与apply
C# 中的等价物?
最接近这一点的是,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);
});
推荐阅读
- reactjs - React Material-Table onSelectionChange 将数据传递给钩子状态
- vba - 共享收件箱你如何让 vba 去那里而不是我自己的收件箱
- html - 如何在css中遵循较低的最大宽度
- javascript - 如何根据foreignObject的高度动态调整D3 rect的大小
- angular - 将组件加载到 HTML 元素
- r - 如何通过用向量对索引矩阵来获取向量?
- python - 期待积极的时候得到消极的coef_?
- tomcat - 将tomcat中的localhost_access_log路由到控制台
- visual-studio-code - VS 代码 - 意外的输出格式 /ERROR\
- javascript - Ionic - JavaScript:访问函数内的属性