首页 > 解决方案 > C# 中有没有办法“输入”很长的内容?

问题描述

我在表中使用 long 作为主键。对于每个具有 DataObject.Select(long primarykey) 的表,我都有一个数据对象。

如果我可以输入这么长的内容,这样我就不会将 table1 的 PK 传递到 table2 的 Select() 中,那就太好了。这将消除传入错误外键的常见错误。

我猜除了在课堂上包裹长之外别无他法,但我认为问不会有什么坏处。有没有办法做到这一点,在运行时它仍然传递一个 long (原始类型)但在编译时它会标记不匹配?

public class Subscription {
    public long SubscriptionId { get; }
    public long OrganizationId { get; }

    public static Subscription Select (long subscriptionId) {}
}

public class Organization {
    public long OrganizationId { get; }
    public static Organization Select (long organizationId) {}
}

在上面任何 long 都可以传入。但如果我打电话:

Organization org = Organization.Select(subscription.SubscriptionId);

编译并运行。但这是错误的。我希望得到一个编译错误,因为正确的调用是:

Organization org = Organization.Select(subscription.OrganizationId)

标签: c#

解决方案


我建议,您创建两个结构,每个结构都有一个public long字段,然后您应该定义您的方法以使用这两个不同的结构作为参数。然后,如果你弄错了,编译器会告诉你。


推荐阅读