1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-08-16 06:31:42 +02:00
Files
.github
.idea
bld
lib
TweetLib.Browser
TweetLib.Browser.CEF
TweetLib.Communication
TweetLib.Core
Application
Features
Resources
Systems
Configuration
BaseConfig.cs
ConfigManager.cs
ConfigObjects.cs
FileConfigInstance.cs
IConfigInstance.cs
IConfigObject.cs
Logging
Updates
App.cs
Lib.cs
TweetLib.Core.csproj
TweetLib.Utils
TweetTest.Browser.CEF
TweetTest.Core
TweetTest.Utils
linux
resources
windows
.gitattributes
.gitignore
LICENSE.md
README.md
TweetDuck.sln
TweetDuck.sln.DotSettings
Version.cs
global.json

23 lines
655 B
C#

using System;
using System.Collections.Generic;
namespace TweetLib.Core.Systems.Configuration {
public abstract class BaseConfig<T> : IConfigObject<T> where T : BaseConfig<T> {
public abstract T ConstructWithDefaults();
protected void UpdatePropertyWithEvent<V>(ref V field, V value, EventHandler? eventHandler) {
if (!EqualityComparer<V>.Default.Equals(field, value)) {
field = value;
eventHandler?.Invoke(this, EventArgs.Empty);
}
}
protected void UpdatePropertyWithCallback<V>(ref V field, V value, Action action) {
if (!EqualityComparer<V>.Default.Equals(field, value)) {
field = value;
action();
}
}
}
}