想象一下,我有 int count ,每次更改我想调用函数 DoSomething()我该怎么办?
我认为我必须以某种方式使用属性(并且想知道如何使用属性来实现它),但任何帮助都会很棒。
答案 0 :(得分:1)
您可以做的一件事是使用公共属性访问Count
,并将属性的值存储在私有支持字段中。这样,您可以将setter中的传入value
(当有人设置Count
属性时调用)与当前count
进行比较。如果不同,请拨打DoSomething
(并更新您的支持字段):
具有支持字段和自定义设置器的属性
private int count = 0;
public int Count
{
get
{
return count;
}
set
{
// Only do something if the value is changing
if (value != count)
{
DoSomething();
count = value;
}
}
}
使用示例
static class Program
{
private static int count = 0;
public static int Count
{
get
{
return count;
}
set
{
// Only do something if the value is changing
if (value != count)
{
DoSomething();
count = value;
}
}
}
private static void DoSomething()
{
Console.WriteLine("Doing something!");
}
private static void Main()
{
Count = 1; // Will 'DoSomething'
Count = 1; // Will NOT DoSomething since we're not changing the value
Count = 3; // Will DoSomething
Console.WriteLine("\nDone!\nPress any key to exit...");
Console.ReadKey();
}
}
<强>输出强>