From 3c852e6d025d9fc3503c28f266ee66c9d99e5d77 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 20 Jan 2022 16:43:51 +0900 Subject: [PATCH] Avoid constructor overhead for realm `ScoreInfo` parameterless constructor --- osu.Game/Scoring/ScoreInfo.cs | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/osu.Game/Scoring/ScoreInfo.cs b/osu.Game/Scoring/ScoreInfo.cs index cfc37e956d..a28e16450f 100644 --- a/osu.Game/Scoring/ScoreInfo.cs +++ b/osu.Game/Scoring/ScoreInfo.cs @@ -29,11 +29,11 @@ namespace osu.Game.Scoring public class ScoreInfo : RealmObject, IHasGuidPrimaryKey, IHasRealmFiles, ISoftDelete, IEquatable, IScoreInfo { [PrimaryKey] - public Guid ID { get; set; } = Guid.NewGuid(); + public Guid ID { get; set; } - public BeatmapInfo BeatmapInfo { get; set; } + public BeatmapInfo BeatmapInfo { get; set; } = null!; - public RulesetInfo Ruleset { get; set; } + public RulesetInfo Ruleset { get; set; } = null!; public IList Files { get; } = null!; @@ -57,7 +57,7 @@ namespace osu.Game.Scoring public long OnlineID { get; set; } = -1; [MapTo("User")] - public RealmUser RealmUser { get; set; } + public RealmUser RealmUser { get; set; } = null!; [MapTo("Mods")] public string ModsJson { get; set; } = string.Empty; @@ -65,19 +65,17 @@ namespace osu.Game.Scoring [MapTo("Statistics")] public string StatisticsJson { get; set; } = string.Empty; - public ScoreInfo(BeatmapInfo beatmap, RulesetInfo ruleset, RealmUser realmUser) + public ScoreInfo(BeatmapInfo? beatmap = null, RulesetInfo? ruleset = null, RealmUser? realmUser = null) { - Ruleset = ruleset; - BeatmapInfo = beatmap; - RealmUser = realmUser; + Ruleset = ruleset ?? new RulesetInfo(); + BeatmapInfo = beatmap ?? new BeatmapInfo(); + RealmUser = realmUser ?? new RealmUser(); + ID = Guid.NewGuid(); } - [UsedImplicitly] - public ScoreInfo() // TODO: consider removing this and migrating all usages to ctor with parameters. + [UsedImplicitly] // Realm + private ScoreInfo() { - Ruleset = new RulesetInfo(); - RealmUser = new RealmUser(); - BeatmapInfo = new BeatmapInfo(); } // TODO: this is a bit temporary to account for the fact that this class is used to ferry API user data to certain UI components.