标签: out-parameters

为什么'ref'和'out'不支持多态?

请考虑以下事项:

class A {}

class B : A {}

class C
{
    C()
    {
        var b = new B();
        Foo(b);
        Foo2(ref b); // <= compile-time error: 
                     // "The 'ref' argument doesn't match the parameter type"
    }

    void Foo(A a) {}

    void Foo2(ref A a) {}  
}
Run Code Online (Sandbox Code Playgroud)

为什么会发生上述编译时错误?两者refout参数都会发生这种情况.

c# polymorphism out-parameters ref-parameters

123
推荐指数
5
解决办法
1万
查看次数

是否有VB.NET等效的C#out参数?

VB.NET是否直接等效于C#out函数参数,其中传递给函数的变量不需要初始化?

vb.net out-parameters c#-to-vb.net

87
推荐指数
3
解决办法
7万
查看次数

在C#中将属性作为'out'参数传递

假设我有:

public class Bob
{
    public int Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想将Value成员作为out参数传递

Int32.TryParse("123", out bob.Value);
Run Code Online (Sandbox Code Playgroud)

但我得到一个编译错误,"'out'参数不归类为变量." 有没有办法实现这一点,或者我将不得不提取变量,àla:

int value;
Int32.TryParse("123", out value);
bob.Value = value;
Run Code Online (Sandbox Code Playgroud)

c# properties out-parameters

75
推荐指数
2
解决办法
3万
查看次数

如何使用out参数调用方法?

我想暴露WebClient.DownloadDataInternal方法,如下所示:

[ComVisible(true)]
public class MyWebClient : WebClient
{
    private MethodInfo _DownloadDataInternal;

    public MyWebClient()
    {
        _DownloadDataInternal = typeof(WebClient).GetMethod("DownloadDataInternal", BindingFlags.NonPublic | BindingFlags.Instance);
    }

    public byte[] DownloadDataInternal(Uri address, out WebRequest request)
    {
        _DownloadDataInternal.Invoke(this, new object[] { address, out request });
    }

}
Run Code Online (Sandbox Code Playgroud)

WebClient.DownloadDataInternal有一个out参数,我不知道如何调用它.救命!

c# reflection out-parameters

42
推荐指数
2
解决办法
2万
查看次数

如何最好地在JavaScript中实现params?

我在jQuery中使用Javascript.我想实现params.在C#中,它看起来像这样:

/*
 * odp      the object to test
 * error    a string that will be filled with the error message if odp is illegal. Undefined otherwise.
 *
 * Returns  true if odp is legal.
 */
bool isLegal(odp, out error);
Run Code Online (Sandbox Code Playgroud)

在JS中做这样的事情的最佳方法是什么?对象?

function isLegal(odp, errorObj)
{
    // ...
    errorObj.val = "ODP failed test foo";
    return false;
}
Run Code Online (Sandbox Code Playgroud)

Firebug告诉我上述方法可行,但是有更好的方法吗?

javascript out-parameters

35
推荐指数
4
解决办法
5万
查看次数

有没有办法省略参数?

我们假设我有一个带out参数的函数,但是我不需要它的值.如果给定结果将丢弃,有没有办法传递没有实际参数?

编辑:

虽然这个问题已被选为可选输出参数的重复, 但只有从方法创建者的角度来看才是这样.如果您是该方法的用户,那么您不想让参数成为可选参数,只是在不声明变量的情况下不使用它.虽然这是不可能的,但使用C#7.0可以在方法调用中声明它.所以代替:

int unusedValue;
TryGetValue("key", out unusedValue);
Run Code Online (Sandbox Code Playgroud)

你得到:

TryGetValue("key", out int unusedValue);
Run Code Online (Sandbox Code Playgroud)

甚至:

TryGetValue("key", out _);
Run Code Online (Sandbox Code Playgroud)

这应该作为答案添加,但是:

  • 我不能为这个问题这样做,因为它被标记为一个傻瓜;
  • 这个问题的问题似乎是一个实际上要求不同的东西.

c# parameter-passing out-parameters

33
推荐指数
2
解决办法
1万
查看次数

在什么情况下'out'参数有用(不能使用'ref'代替)?

据我所知,out参数的唯一用途是调用者可以从单个方法调用中获取多个返回值.但我们也可以使用ref参数获取多个结果值!

那么有没有其他情况下out参数可以证明是有用的,而我们不能使用ref参数呢?

谢谢.

c# out-parameters ref-parameters

18
推荐指数
2
解决办法
534
查看次数

传出参数

我用out参数写了一个方法:

-(NSString *)messageDecryption:(NSString *)receivedMessage outParam:(out)messageCondent
{   
    messageCondent = [receivedMessage substringFromIndex:2];
    return [receivedMessage substringToIndex:1];
}
Run Code Online (Sandbox Code Playgroud)

然后我像这样通过了这个参数:

NSString *messageCondent;
NSString *mode = [myclassobject messageDecryption:message outParam:messageCondent];
Run Code Online (Sandbox Code Playgroud)

但是,有一个问题.out参数值未正确设置.任何人都可以帮我正确地做到这一点吗?

iphone objective-c out-parameters

18
推荐指数
2
解决办法
1万
查看次数

C#'out'参数有用的真实示例?

我正在阅读核心C#编程结构,并且很难将我的头部包裹在out参数修饰符周围.我知道通过阅读它做了什么,但我想在使用它的时候想到一个场景.

有人可以给我一个真实世界的例子吗?谢谢.

c# out-parameters

17
推荐指数
3
解决办法
2万
查看次数

使用JDBC从存储过程中获取Oracle表类型

我试图了解使用JDBC从Oracle存储过程/函数获取表数据的不同方法.六种方式如下:

  1. 过程将模式级表类型作为OUT参数返回
  2. 过程将包级别表类型作为OUT参数返回
  3. 过程将包级别的游标类型作为OUT参数返回
  4. 函数返回模式级表类型
  5. 函数返回包级表类型
  6. 函数返回包级游标类型

以下是PL/SQL中的一些示例:

-- schema-level table type
CREATE TYPE t_type AS OBJECT (val VARCHAR(4));
CREATE TYPE t_table AS TABLE OF t_type;

CREATE OR REPLACE PACKAGE t_package AS
  -- package level table type
  TYPE t_table IS TABLE OF some_table%rowtype;
  -- package level cursor type
  TYPE t_cursor IS REF CURSOR;
END library_types;

-- and example procedures:
CREATE PROCEDURE p_1 (result OUT t_table);
CREATE PROCEDURE p_2 (result OUT t_package.t_table);
CREATE PROCEDURE p_3 (result OUT t_package.t_cursor);
CREATE FUNCTION f_4 …
Run Code Online (Sandbox Code Playgroud)

oracle stored-procedures jdbc resultset out-parameters

17
推荐指数
1
解决办法
3万
查看次数