是否按价值和传递价值是同义词?

问题描述:

我一直以为拨打电话传递值是同义词。不过,我最近听到有人提到他们,好像他们不一样。它们是一样的吗?是否按价值和传递价值是同义词?

我也在谈论他们对应的引用条款。

它们是synomynous。

“呼叫”是指该方法,而“通过”是指(一个或多个)参数。

实施例:

  1. 参数#1由值/引用传递。
  2. 参数是按值传递的。
  3. 该方法用于按值上下文调用。
+0

指出“呼叫”是指方法,“通过”是指参数使得一切都有意义。谢谢。 – royco 2011-02-13 22:29:04

是的,这些术语是同义词,因为我理解它们。

但是,我认为你是在问错的观众。如果你的同事认为他们不同,那么你和他们的理解不一致。无论我认为他们是否相同都不相关,重要的是你的同事的实际意义。

+0

是的,但我不知道该如何联系到这个人。感谢您的回应! – royco 2011-02-13 22:16:34

“某人”是错误的。查看维基百科​​,它直接回答你的问题。您可以在这篇文章中指出,某些“有人”,还有:

呼叫按价值评估(也 被称为传址值)为 最常见的评价策略,...

+2

+1有一个参考链接发布! – jmort253 2011-02-13 22:25:05

它们是同义词。术语呼叫按值意味着完全相同通按值

但是,我更喜欢传递值窗体,因为它是它传递的参数。一个调用可以包含通过值传递的参数以及通过引用传递的参数。

实施例:

public void Something(string name, int count, ref string target, ref int result) 

第一个参数是按值传递的引用,第二个是通过值传递的值,第三是通过引用传递的引用,并且所述第四是通过引用传递的值。

我一直认为他们的代名词,但是当我仔细想想,也许他们正在试图直接调用的方法,并呼吁通过引用的方法(即委托)区分。也就是说,给定这样的:

public delegate void MyDelegate(); 

class MyClass 
{ 
    public void DoSomething() 
    { 
     // ... 
    } 
} 

MyClass thing = new MyClass(); 

他们试图说,如果你写:

thing.DoSomething(); 

那么它是一个 “呼叫的价值”,但是,如果你写:

MyDelegate dlgt = thing.DoSomething; 
dlgt(); // calls thing.DoSomething through the delegate reference 

那么这是一个“通过参考呼叫?”