Tag: 返回值

对象是否应返回null并且对象集合返回空集合?

今天出现了返回空值,空对象和空集合的主题,我们希望得到其他人的意见。 我们已经阅读了关于为对象返回null的讨论以及关于返回空集合的讨论并且同意两个主题的标记答案。 但是,在我们的例子中,我们有一个包含Foo.Item类和Foo.Items类的类,它是Foo.Item对象的集合。 如果Foo.Item返回null,Foo.Items集合是否也返回null,还是应该返回空集合?

将实际值从fortran77 dll返回到c#

有人可以指出我在这里做错了什么吗? FORTRAN 77 dll代码 *$pragma aux DON “DON” export parm(value*8,value*8) SUBROUTINE DON(DAA,DBB,DCC) REAL*8, DAA,DBB,DCC DBB=DAA+1 DCC=DBB+1 RETURN END C#代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.Diagnostics; namespace pDON { class Program { [DllImport(“DON.dll”, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] public static extern void DON( [MarshalAs(UnmanagedType.R8)] double DAA, [MarshalAs(UnmanagedType.R8)] double DBB, […]

如何故意忽略返回值

在某些使用C / C ++的情况下,我可以在语法上向编译器指示故意忽略返回值: int SomeOperation() { // Do the operation return report_id; } int main() { // We execute the operation, but in this particular context we // have no use of the report id returned. (void)SomeOperation(); } 我觉得这是一个公平的做法,首先是因为大多数编译器不会在这里产生警告,其次是因为它向未来的开发人员明确表明作者有意识地选择忽略回报。 它使作者的思想痕迹不含糊。 据我所知,C#编译器不会抱怨隐式忽略返回值,但我想知道是否有类似的约定用于向其他开发人员明确指示。 回答这里的一些人质疑这个约定的实际使用(或者它会显示糟糕的设计以使方法具有潜在的不重要的返回值)。 一个真实的.NET示例(我可能应该从一开始就基于问题)是Mutex::WaitOne()重载,它不带参数。 只有在安全获取互斥锁时它才会返回,否则它永远不会返回。 布尔返回值是针对其他重载的,您可能在返回时最终没有拥有互斥锁。 所以在我的推理中,我想在我的multithreading代码中指出我已经选择忽略返回: Mutex mtx = new Mutex(); (void)mtx.WaitOne(); 因为返回值永远不会是true 。

如何将值从主窗体返回到不同的forms或类(C#)

由于一些不明原因,这个愚蠢的事情无法实施。 我在主窗体中有一个int count ,我想返回另一个类或表单。 namespace my_speller { public partial class login : Form { public login() { InitializeComponent(); } int count; private void btnlogin_MouseUp(object sender, MouseEventArgs e) { dbaccess obj = new dbaccess(); for (int i = 0; i < 10; i++) { if (txtusername.Text == obj.Usersusername()[i]) { count = i; break; } } } […]

如果方法返回一个接口,它意味着什么?

我看到很多方法将接口指定为返回值。 我的想法是真的,这意味着:我的方法可以返回从该接口inheritance的每个类类型? 如果没有,请给我一个很好的答案。

exception比返回值贵多少钱?

是否可以使用返回值和exception更改此代码: public Foo Bar(Bar b) { if(b.Success) { return b; } else { throw n.Exception; } } 对此,它会为成功和失败抛出单独的例外 public Foo Bar(Bar b) { throw b.Success ? new BarException(b) : new FooException(); } try { Bar(b) } catch(BarException bex) { return ex.Bar; } catch(FooException fex) { Console.WriteLine(fex.Message); }

如何使用DataContext.ExecuteCommand并获取执行的存储过程返回值?

在ac #project中,我调用存储过程如下: System.Data.Linq.DataContext dataContext = MembershipContext.GetContext(connectionString); int returnValue = dataContext.ExecuteCommand(“EXEC usp_SomeProcedure {0}, {1}, {2}”, param1, param2, param3); 但是,ExecuteCommand返回受影响的行数,而不是我的存储过程返回值。 获得这个价值的最简单方法是什么? 我需要这个,因为SP在成功时返回0,如果发生错误则返回正的int值。 现在,存储过程使用RETURN输出其返回值。 但是,我可以为SELECT更改此选项,或者如果需要,我也可以使用输出参数。

如何表明方法不成功

我有几种类似的方法,例如。 CalculatePoint(…)和CalculateListOfPoints(…)。 有时候,它们可能不会成功,需要向呼叫者表明这一点。 对于返回通用List的CalculateListOfPoints,我可以返回一个空列表并要求调用者检查这个; 但是Point是一个值类型,所以我不能在那里返回null。 理想情况下,我希望这些方法“看起来”相似; 一种解决方案可能是将它们定义为 public Point CalculatePoint(… out Boolean boSuccess); public List CalculateListOfPoints(… out Boolean boSuccess); 或者返回一个点? 对于CalculatePoint,并返回null以指示失败。 这意味着必须回归到非可空类型,这似乎是过度的。 另一种方法是返回布尔boSuccess,将结果(Point或List)作为’out’参数,并将它们称为TryToCalculatePoint或其他… 什么是最佳做法? 编辑:我不想使用Exceptions进行流量控制! 有时候会失败。

何时使用JsonResult而不是ActionResult

我一直无法找到关于这个问题的具体答案。 我已经查看了这个问题以及其他地方的post和后续post,但我真正读到的只是JsonResult有一个硬编码的内容类型,并且确实没有任何性能提升。 如果两个结果都可以返回Json,为什么需要在ActionResult上使用JsonResult。 public ActionResult() { return Json(foo) } public JsonResult() { return Json(bar) } 任何人都可以解释ActionResult无法完成工作并且必须使用JsonResult的情况。 如果没有,为什么JsonResult首先存在。

如何知道File.Copy成功了?

静态方法File.Copy(String, String)不返回值。 如果该function成功与否,我怎么能以编程方式知道呢? 如果没有抛出exception, File.Copy良好。 但我问的是如何把“不例外”作为一个条件。 像这样的东西: if(no exception happened){ //my code goes here } 编辑:我使用一个简单的计数器解决了这个问题如下: int i=0; try{ File.Copy(); } catch(e1){ i++; } catch(e2){ i++; } if(i==0){ //my code goes here } 感谢所有贡献者。 我会通过你的答案选择最好的。