标签: method-signature

从VBScript调用Foo(...,[out] BSTR*value)的COM方法

我可以使用签名来调用COM方法

 HRESULT Foo(BSTR in, [out] BSTR * out1, [out] BSTR * out2)
Run Code Online (Sandbox Code Playgroud)

来自VBScript?

下列:

 Dim a;
 Dim b;
 component.Foo "something", a, b
Run Code Online (Sandbox Code Playgroud)

给出了关于不兼容类型的错误.


我仍然可以改变方法的签名.

com vbscript method-signature

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

通用指示符'和符号^在F#方法签名之间有什么区别

我理解用于表示通用参数的刻度,如:

Seq.append : seq<'T> -> seq<'T> -> seq<'T>
Run Code Online (Sandbox Code Playgroud)

但是插入符号表示什么,如:

Seq.average : seq<^T> -> ^T
Run Code Online (Sandbox Code Playgroud)

generics f# method-signature

5
推荐指数
2
解决办法
210
查看次数

Java字节码签名

作为我正在编写的编程语言的编译器的一部分,我在字节码中遇到了通用签名,我试图解析并转换为AST.解析算法大多数都有效,但似乎有一种特殊情况,这些签名的格式有点奇怪.以下是一些这样的情况:

java.util.Arrays#parallelSort: <T::Ljava/lang/Comparable<-TT;>;>([TT;)V
java.util.Arrays#parallelSort: <T::Ljava/lang/Comparable<-TT;>;>([TT;II)V
java.lang.Class#getAnnotation: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
java.lang.Class#getAnnotationsByType: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)[TA;
java.lang.Class#getDeclaredAnnotation: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
java.lang.Class#getDeclaredAnnotationsByType: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)[TA;
java.util.Arrays#parallelSort: <T::Ljava/lang/Comparable<-TT;>;>([TT;)V
java.util.Arrays#parallelSort: <T::Ljava/lang/Comparable<-TT;>;>([TT;II)V
java.util.Collections#sort: <T::Ljava/lang/Comparable<-TT;>;>(Ljava/util/List<TT;>;)V
Run Code Online (Sandbox Code Playgroud)

在这些类中的所有方法中,这些是唯一具有::签名的方法.我的问题是这个令牌的作用以及它存在的原因.

编辑

我知道Java语言中::运算符,但这是字节码级别的内容.

java generics jvm method-signature jvm-bytecode

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

在C#中委托的内容是什么?

在C#代码中,我找到了这个工具。

我试图找出in和out的含义,但只解释其中的out关键字。

那么这些in和out关键字做什么呢?

public delegate Tb Reader<in Ta, out Tb>( Ta a );
Run Code Online (Sandbox Code Playgroud)

c# methods delegates method-signature

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

为什么即使返回类型不同,也不能使用相同的签名声明两个方法?

重复:函数重载按返回类型?


也许这是一个非常愚蠢的问题,但我不明白为什么我不能声明两个具有相同签名的方法,当它们具有不同的返回类型时.

public class MyClass
{
    private double d = 0;

    public double MyMethod()
    {
        return d;
    }

    public string MyMethod()
    {
        return d.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到一个编译错误,指出该类已经定义了具有相同参数类型的成员.

(显然,我在我的代码中使用它的方式并不像我的示例代码那么简单......但我认为它可以解决这个问题.)

我是否遗漏了有关OO设计的内容,这使得我正在尝试做一个OOP反模式?当然,编译器应该能够确定我尝试使用哪种方法,只要我具体告诉它我想要哪一种方法.

鉴于MyClass myClass = new MyClass();我希望以下代码可以工作:

double d = myClass.MyMethod();
string s = myClass.MyMethod();
Run Code Online (Sandbox Code Playgroud)

我希望以下代码有问题:

var v = myClass.MyMethod();
Run Code Online (Sandbox Code Playgroud)

但即使在var它的情况下也应该导致编译错误.

谁能看到我在这里做错了什么?我很高兴得到纠正.:-)

c# method-signature

4
推荐指数
2
解决办法
9329
查看次数

错误CS1001(应提供标识符)

我是编程新手,正在参加C#课程。尝试编写此程序时出现编译器错误CS1001。

我阅读了“编译器错误”说明(下面的链接),但是我真的没明白。我究竟做错了什么?

http://msdn.microsoft.com/zh-CN/library/b839hwk4.aspx

这是我的源代码:

using System;
public class InputMethodDemoTwo
{
   public static void Main()
   {
      int first, second;
      InputMethod(out first, out second); 
      Console.WriteLine("After InputMethod first is {0}", first);
      Console.WriteLine("and second is {0}", second);
   }
   public static void InputMethod(out first, out second) 
   // The error is citing the line above this note.
   {
      one = DataEntry("first"); 
      two = DataEntry("second");
   }
      public static void DataEntry(out int one, out int two)
      {
         string s1, s2;
         Console.Write("Enter first integer ");
         s1 = Console.ReadLine();
         Console.Write("Enter …
Run Code Online (Sandbox Code Playgroud)

c# identifier method-signature

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

如何使用Java反射获取参数名称

如何使用Java反射获取方法签名?

编辑: 我实际上需要参数NAMES而不是方法的类型.

java reflection method-signature

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

为什么Objective-C编译器需要知道方法签名?

为什么Objective-C编译器需要在编译时知道在将对象推迟到运行时(即动态绑定)时将在对象上调用的方法的签名?例如,如果我写[foo someMethod],为什么编译器需要知道签名someMethod

objective-c objective-c-runtime method-signature

4
推荐指数
1
解决办法
169
查看次数

IntelliJ:搜索Checked异常,在方法签名中声明,但从不在正文中抛出

我在这里有一个相当简单的IntelliJ /工具问题:
我正在处理一些遗留代码,并开始在这里和那里重做工作.我经常偶然发现的是在方法签名中声明(检查)异常,尽管这些异常永远不会抛出体内.
这些声明也不是由接口或类似的东西强制执行,因为这个问题主要发生在MVC控制器中,显然总是一遍又一遍地复制和粘贴.
我想知道是否有办法用IntelliJ搜索这些声明的异常.
因为如果我把我的插入符号放在throws关键字上它没有突出显示任何内容,因为声明的异常永远不会被抛出,但编辑器也没有向我显示错误标记,我真的很感激:)
IntelliJ中是否有一个选项可以启用这个功能还是存在可以完成这项工作的插件?

提前致谢.

java intellij-idea method-signature checked-exceptions

4
推荐指数
2
解决办法
1241
查看次数

在没有固有的 WithDayOfMonth 方法的情况下使用 DateTime 将日期设置为每月第一天的最佳方法

因此,我基本上尝试获取 2 个 DateTime 对象并将它们设置为各自月份的第一天,以便我最终可以计算两个日期之间的月份。

代码示例:

DateTime dt = new DateTime();
DateTime newDT = dt.withDayOfMonth(1);
Run Code Online (Sandbox Code Playgroud)

在任何人询问之前,实际代码将 Date 对象转换为 DateTime 对象,该对象在代码的另一部分中使用。

问题是,当我在单元测试中执行此操作时,它似乎工作得很好。但是,当我尝试使用 SOAP UI 对此进行测试时,我可以在调试过程中看到由于以下原因而出现运行时异常:

method lookup failed for selector "withDayOfMonth" with signature "(I)Lorg/joda/time/DateTime;"
Run Code Online (Sandbox Code Playgroud)

在相应的 server.txt 日志文件中,我可以看到堆栈跟踪,表明没有这样的方法没有发生

经过进一步研究,我发现我们的应用程序服务器当前使用过时版本的 JodaTime jar (1.2.1),而我的 eclipse 库包含正确的 jar (1.6.2)。

然而,现在的问题是,由于我无法访问 JodaTime 提供的 withDayOfMonth 方法,因此实现我的目标的最佳方法是什么(创建一个新的 DateTime 对象,并将该月的第一天设置为 0)?

java datetime date jodatime method-signature

4
推荐指数
1
解决办法
6938
查看次数