/// <summary> /// 转义指定位置的名称。 /// </summary> /// <param name="name">名称。</param> /// <param name="point">名称的位置。</param> /// <returns>转义后的名称。</returns> public virtual string EscapeName(string name, NamePoint point) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentNullException(nameof(name)); } switch (point) { case NamePoint.Field: case NamePoint.Table: if (name[0] == '[') { return(name); } return(string.Concat("[", name, "]")); case NamePoint.Value: case NamePoint.Parameter: if (name[0] == '@') { return(name); } return(string.Concat("@", name)); } return(name); }
/// <summary> /// 转义指定位置的名称。 /// </summary> /// <param name="name">名称。</param> /// <param name="point">名称的位置。</param> /// <returns>转义后的名称。</returns> public virtual string EscapeName(string name, NamePoint point) { if(string.IsNullOrWhiteSpace(name)) throw new ArgumentNullException(nameof(name)); switch(point) { case NamePoint.Field: case NamePoint.Table: if(name[0] == '[') return name; return string.Concat("[", name, "]"); case NamePoint.Value: case NamePoint.Parameter: if(name[0] == '@') return name; return string.Concat("@", name); } return name; }
public static void Start() { var p1 = new NamePoint("a", 0, 0); Console.WriteLine($"{nameof(p1)}: {p1}"); var p2 = p1 with { Name = "B", X = 5 }; Console.WriteLine($"{nameof(p2)}: {p2}"); var p3 = p1 with { Name = "C", Y = 4 }; Console.WriteLine($"{nameof(p3)}: {p3}"); Console.WriteLine($"{nameof(p1)}: {p1}"); } } }