gpt4 book ai didi

c# - 在 C# 中重载 =operator 或在赋值前后触发事件的替代方法?

转载 作者:行者123 更新时间:2023-11-30 19:41:01 27 4
gpt4 key购买 nike

我正在尝试创建自己的数据类型。
因此,我从 Microsoft DynamicDictionary 的基本示例开始。

代码是:在http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx

我的类型的主要部分

public class myDynType : System.Dynamic.DynamicObject
{
....
}

现在我想要在我的代码中有这样的东西:

[MaxAllowedValue(100)]
myDynType SomeVar;

如您所知,我们不能在 C# 中重载赋值(= 运算符),那么在赋值之前和之后触发事件的替代方法有哪些?

SomeVar = 7.55;   // I want to fire an event right before assignment
//Plus after assignment

我想在赋值前检查值,如果它大于 100 则抛出异常。我想在分配后检查它以舍入值或修改它。

最佳答案

不完全是,但也许你可以用属性做你需要的:

myDynType someVar;
[MaxAllowedValue(100)]
myDynType SomeVar
{
get
{
return someVar;
}
set
{
PreStuff();
someVar = value;
PostStuff();
}
}

关于c# - 在 C# 中重载 =operator 或在赋值前后触发事件的替代方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21406126/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com