标签: method-signature

PHP中的方法签名是必须还是应该?

我的意思是,如果它被称为$request不是实例sfWebRequest,它会致命,还是只是警告?

class jobActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
    $this->jobeet_job_list = Doctrine::getTable('JobeetJob')
      ->createQuery('a')
      ->execute();
  }

  // ...
}
Run Code Online (Sandbox Code Playgroud)

php method-signature

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

如何处理重载方法签名中的冲突?

我有一种感觉,这个问题是一堆蠕虫,但无论如何我都会问... :)

我有一个方法:

private MembershipUser GetUserFromReader(SqlDataReader reader)
Run Code Online (Sandbox Code Playgroud)

我希望使用不同的返回类型重载此方法:

private User GetUserFromReader(SqlDataReader reader)
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨这两种方法具有相同的签名.

那么,最好的方法是什么?我宁愿不添加不必要的参数只是为了更改方法签名.

我玩过这样的想法:

private User GetUserFromReader(T reader)
Run Code Online (Sandbox Code Playgroud)

但还没有完全探索过这个.看来我需要对我如何使用读者对象进行一系列更改.

有任何想法吗?当您有两个相同签名的重载方法时,最佳做法是什么?

谢谢你帮忙...

c# conflict overloading method-signature

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

Python神奇的main()签名,如Perl 6

python是否有任何方法可以轻松快速地创建CLI实用程序,而无需大量的参数解析样板?

在Perl 6中,MAIN子的签名自动解析命令行参数.

有没有办法在没有大量样板的情况下在Python中做类似的事情?如果没有,最好的方法是什么?我正在考虑一个函数装饰器,它将执行一些内省并做正确的事情.如果没有什么比这更好的了,我会想到的东西就像我下面的东西.这是一个好主意吗?

@MagicMain
def main(one, two=None, *args, **kwargs):
    print one # Either --one or first non-dash argument
    print two # Optional --arg with default value (None)
    print args # Any other non-dash arguments
    print kwargs # Any other --arguments

if __name__ == '__main__':
    main(sys.argv)
Run Code Online (Sandbox Code Playgroud)

python method-signature perl6 command-line-arguments magic-methods

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

使用按类型获取或按ID获取

我有一个名为GetObjectsRelatedToAType的方法,例如GetCarsRelatedToDealership.从Web服务或一般方法签名的角度来看,哪种方法更好:

List<Cars> GetCarsRelatedToDealership( Dealership dealership );
Run Code Online (Sandbox Code Playgroud)

要么

List<Cars> GetCarsRelatedToDealership( id dealership );
Run Code Online (Sandbox Code Playgroud)

我倾向于喜欢对象方法,因为确保方法的源输入有效会更有力.思考/建议吗?

c# method-signature

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

C中的方法签名,将指针传递给静态数组

我有以下数组:

char* mask[9];
int hSobelMask[9] = {
    -1, -2, -1,
    0, 0, 0,
    1, 2, 1};
Run Code Online (Sandbox Code Playgroud)

我想在这个数组上给出一个像这样的方法的指针:

int H = applyMask(&mask, &hSobelMask);
Run Code Online (Sandbox Code Playgroud)

applyMask函数的签名如下:

int applyMask(char** mask[9], int* sobelMask[9]);
Run Code Online (Sandbox Code Playgroud)

但我得到以下编译警告:

demo.c: In function ‘customSobel’:
demo.c:232:7: warning: passing argument 1 of ‘applyMask’ from incompatible pointer type
demo.c:181:5: note: expected ‘char ***’ but argument is of type ‘char * (*)[9]’
demo.c:232:7: warning: passing argument 2 of ‘applyMask’ from incompatible pointer type
demo.c:181:5: note: expected ‘int **’ but argument is of type ‘int (*)[9]’ …
Run Code Online (Sandbox Code Playgroud)

c pointers method-signature

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

C++纯虚函数继承(相同签名)

为什么这不编译?
错误C2660:'Concrete :: WriteLine':函数不带1个参数
我知道如果我
使用AbstractBase :: WriteLine 添加Line://;
它有效,但我不明白为什么.

#include "iostream" 

class AbstractBase
{
public:
   virtual void WriteLine() = 0;
   virtual void WriteLine( int i )
   {
      std::cout<<"AbstractBase"<<std::endl;
   }
};

class Concrete : public AbstractBase
{
public:
   //using AbstractBase::WriteLine;
   virtual void WriteLine()
   {
      std::cout<<"Concrete Sub Class"<<std::endl;
   }
};

int main()
{
   Concrete ff;
   ff.WriteLine();
   ff.WriteLine(1);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这里发生了什么.感谢名单


有谁知道这种行为是否是来自C++标准的已定义行为.是否在C++标准中提到过?或者它只是一种编译器行为?

c++ inheritance method-signature

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

C# - 使用ClassName覆盖<T>方法签名?

有没有办法覆盖使用<T>ClassName 的抽象类的方法签名,所以我可以通过引用传递一个对象而不重新编写它?

例如,我有一堆对象管理器.我希望它们都包含一个.Save(Object)方法,该方法将根据对象状态(插入,更新,删除等)执行相应的保存操作.

我试图创建一个包含以下方法的基类:

protected virtual bool Update<T>(ref T _object) where T : ObjectBase
{
    throw new NotImplementedException();
}

public virtual bool Save<T>(ref T _object) where T : ObjectBase
{ 
    // Figure out which action to take based on _object's state and execute it
}
Run Code Online (Sandbox Code Playgroud)

我希望我继承的类使用类似的东西来定义方法:

public override bool Update<Consumer>(ref Consumer _object)
{
    return _service.UpdateConsumer(ref _object);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我不能指定<T>现在会<Consumer>,并保持它在<T>我不能由参传递

overriding type-conversion method-signature

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

存储在服务器上的文档上的数字签名

我想ERP通过存储在服务器上的Web浏览器文档在我们的数字签名上实现一个过程.这个过程应该是:

  1. 用户登录
  2. 用户查看存储在应该进行数字签名的服务器上的pdf文件
  3. 用户选择pdf文件到数字符号
  4. 这些文件将进行数字签名

数字标牌可以使用智能卡或服务器端标志系统完成.知道如何实施它吗?

digital-signature method-signature

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

为什么Java等于(Object O)方法没有可以将特定对象类型(例如String,Integer等)作为输入的变量?

我遇到了一些问题,我需要使用Java语言比较两个字符串(或任何其他对象)的相等/不相等.String Object上有两种方法对此目的非常有用.compareTo(Object O),返回一个比较的整数结果而另一个equals(Object o)返回一个布尔值.我的问题是,虽然有一个变量compareTo()将特定的String作为输入而不是通用的Object,为什么没有这样的变体equals()?我经常遇到的一个问题是,当我在一个对象上调用equals方法并将通用对象作为参数传递时,它不会抛出任何编译错误.考虑下面的代码片段(这不是一个真实的例子,但我写的只是说明我的观点).

String testStr = new String("1");
Integer testInt = new Integer(1);

testStr.compareTo(testInt.toString()); // compiles
testStr.equals(testInt.toString());    // compiles

testStr.equals(testInt);               // compiles and will be always false 
testStr.compareTo(testInt);            // doesn't compile
Run Code Online (Sandbox Code Playgroud)

java generics equality string-comparison method-signature

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

重构方法头参数顺序

我在Eclipse IDE中遇到了重构问题.

我有这个接口方法:

List<String> evaluateAllPoi(boolean pIsVerified, List<String> pAllNames, List<String> pAllComment);
Run Code Online (Sandbox Code Playgroud)

该方法对Junit具有较高的测试覆盖率(至少90次测试).

我想boolean通过重构将第一个参数移动到方法签名的末尾,所以我得到:

List<String> evaluateAllPoi(List<String> pAllNames, List<String> pAllComment,boolean pIsVerified);
Run Code Online (Sandbox Code Playgroud)

我很确定Eclipse提供了一种轻松实现这一目标的可能性,而无需手动更改每个调用,但目前我没有找到/看到它.

你能给我一个暗示吗?

java eclipse refactoring method-signature

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