Skip to content

SEH00N/H00N.ObservableValue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ObservableValue

C# Value Observing

Install

dotnet add package H00N.ObservableValue

Usage

public partial class MyClass
{
    [ObservableValue]
    private float _myField = 0;
}

// somewhere
MyClass myClass = new MyClass();
myClass.OnMyFieldChangedEvent += HandleMyFieldChanged;
myClass.MyField = 10;
myClass.MyField = 11;
myClass.MyField = 9;

void HandleMyFieldChanged(float oldValue, float newValue)
{
    Console.WriteLine($"Value Changed! OldValue: {oldValue}, NewValue: {newValue}");
}

// output
Value Changed! OldValue: 0, NewValue: 10
Value Changed! OldValue: 10, NewValue: 11
Value Changed! OldValue: 11, NewValue: 9

⚠️ Notes on equality and change detection

ObservableValue only raises change notifications when it detects an actual value change.

Internally it uses:

System.Collections.Generic.EqualityComparer<T>.Default.Equals(oldValue, newValue)

About

C# Value Observing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages