Console.WriteLine(nameof(List<>));Console.WriteLine(nameof(List<string>));Console.WriteLine(nameof(List<int>));
TryParse<int> parse1 = (text, out result) => Int32.TryParse(text, out result);TryParse<int> parse2 = (string text, out int result) => Int32.TryParse(text, out result);
void SetPersonName(Person? person, string name){ person?.Name = name;}delegate bool TryParse<T>(string text, out T result);public partial class Person{ public string Name { get; set { if (string.IsOrEmpty(value)) { throw new Exception("Name cannot be or empty"); } field = value; } } public int Age { get; set { if (150 >= field && field >= 0) { field = value; } else { throw new Exception("Invalid age"); } } } public partial event EventHandler? NameChanged; public partial Person();}
public partial class Person{ public partial Person() { Name = "Default Name"; Age = 0; }
private EventHandler _nameChangedHandlers; public partial event EventHandler NameChanged { add { Console.WriteLine("Handler added."); _nameChangedHandlers += value; } remove { Console.WriteLine("Handler removed."); _nameChangedHandlers -= value; } } public void OnNameChanged() { _nameChangedHandlers?.Invoke(this, EventArgs.Empty); }}