This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
namespace MembranePoreTester.Models
|
||||
{
|
||||
public class TestLiquid
|
||||
public class TestLiquid : IEquatable<TestLiquid>
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public double SurfaceTension { get; set; } // mN/m, 25°C
|
||||
@@ -10,7 +10,7 @@
|
||||
public double C_cmHg => 2.15 * SurfaceTension;
|
||||
public double C_psi => 0.415 * SurfaceTension;
|
||||
|
||||
public static List<TestLiquid> Predefined => new()
|
||||
private static readonly List<TestLiquid> _predefined = new()
|
||||
{
|
||||
new TestLiquid { Name = "水", SurfaceTension = 72.0 },
|
||||
new TestLiquid { Name = "石油馏分", SurfaceTension = 30.0 },
|
||||
@@ -18,5 +18,21 @@
|
||||
new TestLiquid { Name = "液态石蜡", SurfaceTension = 34.7 },
|
||||
new TestLiquid { Name = "BSD16", SurfaceTension = 16.0 } // 新增
|
||||
};
|
||||
|
||||
// 返回可修改的全局液体列表(允许在运行时添加自定义液体便于恢复选择)
|
||||
public static List<TestLiquid> Predefined => _predefined;
|
||||
|
||||
public override string ToString() => Name;
|
||||
|
||||
public bool Equals(TestLiquid other)
|
||||
{
|
||||
if (other is null) return false;
|
||||
// 以 Name 为主键判断相等,SurfaceTension 可作为辅助信息
|
||||
return string.Equals(Name, other.Name, StringComparison.Ordinal);
|
||||
}
|
||||
|
||||
public override bool Equals(object obj) => Equals(obj as TestLiquid);
|
||||
|
||||
public override int GetHashCode() => Name?.GetHashCode() ?? 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user