【发布时间】:2020-05-14 09:59:17
【问题描述】:
我正在编写调用第三方 Web API 的代码。 Web 响应很重要,因为它包含有关是否插入记录的详细信息。 API 返回表示已创建对象的 JSON。其他插入需要返回的 ID,例如地址的 id 是插入员工之前需要的外键。如果不保留返回值以供以后使用,则可能难以跟踪插入的地址。
是否可以注释或以其他方式编写方法以便必须分配返回值?这意味着如果不分配其他变量就无法调用该方法,因此您不会意外丢失响应。
例如
[MustAssignReturnResult]
public string InsertRecord(string json)
{
return "{json representing result}";
}
如果没有分配,我希望编译器失败。
//this is ok
string result = InsertRecord(json);
//valid under normal circumstances
InsertRecord(json); //but should give a compiler error because result is not assigned.
【问题讨论】:
-
为什么?如果返回的信息对以后的使用很重要,那么编写代码的人都会弄清楚并存储它。我不确定编译器强制执行此操作(目前想不出办法)是否有用或一个好主意。
-
不要这样做。时期。 “返回的 ID 是其他插入所必需的” - 通常的程序员会弄清楚。您无需强制执行任何操作。
-
@InBetween 我认为在这种情况下有助于防止用户用垃圾填充第三方数据库。例如。插入没有员工的地址。不幸的是,第 3 方 API 在地址创建后很难搜索,即您必须知道插入记录的 ID。我不能阻止用户只插入地址,但如果他们看起来做错了,我可以通过某种方式使代码发出警告或错误。
标签: c# compiler-errors return-value