c# - 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)
解决方案
我建议,您创建两个结构,每个结构都有一个public long
字段,然后您应该定义您的方法以使用这两个不同的结构作为参数。然后,如果你弄错了,编译器会告诉你。
推荐阅读
- python - 将图像转换为 numpy 数组,然后立即将其转换回图像会产生两种不同的结果
- java - Proper way to wait for a lambda to complete
- android - Webview cookie 未更新
- spring-boot - Spring Boot:本地化 REST API 响应
- batch-file - 如何在vbs中将字符串添加到传递的参数中
- javascript - 我的 js 代码有什么问题。结果总是不确定的?
- javascript - JavaScript 函数在 AJAX XML HttpRequest 之后不起作用
- sql - Role of null in performance tuning
- javascript - Xpath 返回下元素的空值
标签 - python - PermissionError 仅在第一次引发 - pd.ExcelWriter.save()