标签: methods

属性与方法

快速提问:您何时决定使用属性(在C#中)以及何时决定使用方法?

我们正在忙着进行这场辩论,并且发现了一些我们应该使用财产或方法存在争议的领域.一个例子是:

public void SetLabel(string text)
{
    Label.Text = text;
}
Run Code Online (Sandbox Code Playgroud)

在该示例中,Label是ASPX页面上的控件.是否有一个原则可以控制决策(在这种情况下)是否将其作为方法或财产.

我会接受最全面和最全面的答案,但这也触及了我给出的例子.

c# methods properties

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

class方法生成"TypeError:...为关键字参数获取多个值..."

如果我用关键字参数定义一个类方法,那么:

class foo(object):
  def foodo(thing=None, thong='not underwear'):
    print thing if thing else "nothing" 
    print 'a thong is',thong
Run Code Online (Sandbox Code Playgroud)

调用该方法会生成一个TypeError:

myfoo = foo()
myfoo.foodo(thing="something")

...
TypeError: foodo() got multiple values for keyword argument 'thing'
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

python methods class python-2.7

121
推荐指数
5
解决办法
11万
查看次数

最终静态方法的行为

我一直在玩静态方法的修饰符,并遇到了一个奇怪的行为.

我们知道,静态方法不能被覆盖,因为它们与类而不是实例相关联.

所以,如果我有下面的代码片段,它编译得很好

//Snippet 1 - Compiles fine
public class A {
    static void ts() {
    }
}

class B extends A {
    static void ts() {
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果我在A类中将final修饰符包含到静态方法中,则编译失败 ,B中的ts()不能覆盖A中的ts(); 重写方法是静态最终的.

当静态方法根本无法被覆盖时,为什么会发生这种情况?

java methods static final

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

使用Moq验证方法调用

我对C#中的单元测试相当新,并且学习使用Moq.以下是我要测试的课程.

class MyClass
{
    SomeClass someClass;
    public MyClass(SomeClass someClass)
    {
        this.someClass = someClass;     
    }

    public void MyMethod(string method)
    {
        method = "test"
        someClass.DoSomething(method);
    }   
}

class Someclass
{
    public DoSomething(string method)
    {
        // do something...
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是我的TestClass:

class MyClassTest
{
    [TestMethod()]
    public void MyMethodTest()
    {
        string action="test";
        Mock<SomeClass> mockSomeClass = new Mock<SomeClass>();
        mockSomeClass.SetUp(a => a.DoSomething(action));
        MyClass myClass = new MyClass(mockSomeClass.Object);
        myClass.MyMethod(action);
        mockSomeClass.Verify(v => v.DoSomething(It.IsAny<string>()));
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

Expected invocation on the mock at least once, but was never performed …
Run Code Online (Sandbox Code Playgroud)

c# testing methods moq

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

C++枚举类可以有方法吗?

我有一个带有两个值的枚举类,我想创建一个接收值并返回另一个值的方法.我还想保持类型安全(这就是我使用枚举类而不是枚举的原因).

http://www.cplusplus.com/doc/tutorial/other_data_types/没有提及方法的任何内容但是,我的印象是任何类型的类都可以有方法.

c++ methods enums

117
推荐指数
5
解决办法
7万
查看次数

使用$ _REQUEST []有什么问题?

我在这里看过很多帖子说不要使用$_REQUEST变量.我通常不这样做,但有时它很方便.它出什么问题了?

php methods form-submit

115
推荐指数
6
解决办法
5万
查看次数

Android:如何将参数传递给AsyncTask的onPreExecute()?

我使用一个AsyncTask加载操作,我实现为内部类.

在onPreExecute()我显示一个加载对话框,然后我再次隐藏onPostExecute().但对于我提前知道的一些加载操作,它们会很快完成,因此我不想显示加载对话框.

我想通过一个布尔参数来表明这个,我可以传递给它,onPreExecute()但显然由于某种原因onPreExecute()不采取任何参数.

显而易见的解决方法可能是在我的AsyncTask或外部类中创建一个成员字段,我必须在每次加载操作之前设置它,但这似乎不是很优雅.有一个更好的方法吗?

parameters methods android android-asynctask

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

在C#中仅传递一个类型作为参数

假设我这样做很方便:

foo.GetColumnValues(dm.mainColumn, int)
foo.GetColumnValues(dm.mainColumn, string)
Run Code Online (Sandbox Code Playgroud)

其中GetColumns方法将根据传递的类型调用其他方法.

是的,我可以做一个布尔标志或类似的东西,我只是想知道是否有办法可能通过这个,然后问:

typeof(arg [1])或类似的......

我也可以覆盖方法,使用泛型等 - 我知道有不同的方法来做到这一点,我只是好奇,如果这是可能的.

c# parameters methods types

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

方法签名中的新关键字

在执行重构时,我最终创建了一个类似下面示例的方法.为简单起见,数据类型已更改.

我之前有一个这样的赋值语句:

MyObject myVar = new MyObject();
Run Code Online (Sandbox Code Playgroud)

它是偶然重构的:

private static new MyObject CreateSomething()
{
  return new MyObject{"Something New"};
}
Run Code Online (Sandbox Code Playgroud)

这是我的剪切/粘贴错误的结果,但new关键字in private static new有效并编译.

问题:new关键字在方法签名中表示什么?我假设它是在C#3.0中引入的东西?

这有override什么不同?

c# methods keyword

112
推荐指数
5
解决办法
8万
查看次数

Python安全方法获取嵌套字典的值

我有一个嵌套字典.是否只有一种方法可以安全地获得价值?

try:
    example_dict['key1']['key2']
except KeyError:
    pass
Run Code Online (Sandbox Code Playgroud)

或者python有一个像get()嵌套字典的方法?

python methods dictionary except

111
推荐指数
11
解决办法
9万
查看次数