标签: setter

C#在setter方法上添加验证

我有一些我在C#中定义的变量:

public String firstName { get; set; }
public String lastName { get; set; }
public String organization { get; set; }
Run Code Online (Sandbox Code Playgroud)

我想要的是在尝试设置值时为这些方法添加验证.让我们说你要为firstName设置一个值,我应该通过thrue一个正则表达式来设置,否则应该抛出一个异常.这可能是用这种"短语法"构建的,还是我应该选择标准(如JAVA)getter和setter并在那里验证数据?

c# getter setter properties

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

如果在C++ setter中使用它是否重要?

假设我有一个带有私有变量x的c ++类.对于它的制定者,使用有什么区别this吗?是否有可能出现意外/意外行为this?我不使用?

二传手:

void setX(double input)
{
   x = input;
}
Run Code Online (Sandbox Code Playgroud)

二传手使用this:

void setX(double x)
{
   this->x = x;
}
Run Code Online (Sandbox Code Playgroud)

c++ setter this

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

php自动setter和getter

我正在尝试为php对象实现一些自动getter和setter.

我的目标是自动为每个属性的方法getProperty()setProperty(value),这样,如果没有为脚本只是设置一个属性来实现或获得的价值的方法.

一个例子,让自己清楚:

class Foo {
    public $Bar;
}

$A = new A();
$A->setBar("bar");
$A->getBar(); // -> output "bar"
Run Code Online (Sandbox Code Playgroud)

要么

class Foo {
    public $Bar;
    public function setBar($bar) { $Bar = $bar; }
    public function getBar($bar) { return 'the value is: ' . $bar; }
}

$A = new A();
$A->setBar("bar");
$A->getBar(); // -> output "the value is: bar"
Run Code Online (Sandbox Code Playgroud)

关于如何实现这一点的任何想法/提示?

php oop getter setter

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

具有多个值的属性设置器

我有一个属性setter,它通过获取两个字符串并对其进行散列来生成一个唯一的id:

@id.setter
def id(self,value1,value2):
    self._id = sha512(value1+value2)
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 允许(考虑好的python编码实践)以这种方式编码
  2. 如何将两个值传递给setter?

python setter

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

在头文件中实现getter和setter

我有一个简单的问题,在头文件中实现getter和setter是一个好习惯吗?

class WebsocketSession : public boost::enable_shared_from_this<WebsocketSession>{
public:
    WebsocketSession(boost::asio::io_service& io_service, WebsocketServer& server);

    tcp::socket& getSocket() { return socket_; } // <---  This
private:
    tcp::socket socket_;
    WebsocketServer& server_;
};
Run Code Online (Sandbox Code Playgroud)

c++ getter setter

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

在JaCoCo代码覆盖范围中排除Setter和Getters

随着cobertura-maven-plugingetter和setter方法可排除使用代码覆盖ignoreTrivial选项.是否还有这种可能性jacoco-maven-plugin

这是我目前的配置:

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.7.1.201405082137</version>
  <configuration>
    <excludes>
      <exclude>com/welovecoding/web/blog/test/**/*.class</exclude>
    </excludes>
  </configuration>
  <executions>
    <execution>
      <id>amend-unit-test-java-agent-option</id>
      <goals>
        <goal>prepare-agent</goal>
      </goals>
    </execution>
    <execution>
      <id>report</id>
      <phase>prepare-package</phase>
      <goals>
        <goal>report</goal>
      </goals>
    </execution>
  </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

getter setter code-coverage jacoco jacoco-maven-plugin

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

是否可以使用setter将属性返回到其默认值?

想知道是否可能,例如,如果我从TextBox中删除边框,并且我想在鼠标悬停时将其默认边框恢复.

    <Style TargetType="TextBox">
        <Setter Property="BorderBrush" Value="{x:Null}"/>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="BorderBrush" Value="?????"/>
            </Trigger>
        </Style.Triggers>
    </Style>
Run Code Online (Sandbox Code Playgroud)

我以为我可以使用它,但最后隐藏边界似乎是一个坏主意,但问题仍然存在.(我知道在这种情况下,如果鼠标不在TextBox上,我可以将Trigger反转为仅删除边框)

wpf setter styles wpf-controls

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

为python类使用__setattr__和描述符

我正在编写一个使用__setattr____getattr__提供自定义属性访问的python类.

但是,某些属性无法以通用方式处理,因此我希望使用描述符.

出现的问题是,对于描述符,__get__将调用描述符以支持实例__getattr__,但是当分配给属性时,__setattr__将调用以支持描述符__set__.

一个例子:

class MyDesc(object):

    def __init__(self):
        self.val = None

    def __get__(self, instance, owner):
        print "MyDesc.__get__"
        return self.val

    def __set__(self, instance, value):
        print "MyDesc.__set__"
        self.val = value

class MyObj(object):

    foo = MyDesc()

    def __init__(self, bar):
        object.__setattr__(self, 'names', dict(
            bar=bar,
        ))
        object.__setattr__(self, 'new_names', dict())

    def __setattr__(self, name, value):
        print "MyObj.__setattr__ for %s" % name
        self.new_names[name] = value

    def __getattr__(self, name):
        print "MyObj.__getattr__ for %s" % name

        if name …
Run Code Online (Sandbox Code Playgroud)

python setter attributes descriptor

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

你能把一个方法作为属性变量中默认的setter动作的一部分吗?

如果你有多个属性在setter中实现相同的方法,有没有办法让它成为默认setter的一部分?

如果我有多个属性Filter()在设置时调用它,是否有办法将其推入"基本setter",这样我就不必Filter()在每个setter中都有调用?

private string _MyVal1;
public string MyVal1 {
    get {
        return _MyVal1;
    }
    set {
        _MyVal1 = value;
        Filter();
        OnPropertyChanged("MyVal1");
    }
}

private string _MyVal2;
public string MyVal2 {
    get {
        return _MyVal2;
    }
    set {
        _MyVal2 = value;
        Filter();
        OnPropertyChanged("MyVal2");
    }
}

private string _MyValN;
public string MyValN {
    get {
        return _MyValN;
    }
    set {
        _MyValN = value;
        Filter();
        OnPropertyChanged("MyValN");
    }
}
Run Code Online (Sandbox Code Playgroud)

所以它变成了这样:

private string _MyValN;
public string MyValN {
    get {
        return …
Run Code Online (Sandbox Code Playgroud)

c# setter properties

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

swift setter导致exc_bad_access

我下面有一个简单的课程

import Foundation

public class UsefulClass: NSObject{
    var test:NSNumber{
        get{return self.test}
        set{
            println(newValue)
            self.test = newValue
        }
    }
    override init() {
        super.init()
        self.test = 5;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里初始化它

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        var testClass = UsefulClass()
    }
}
Run Code Online (Sandbox Code Playgroud)

但是由于EXC_BAD_ACCESS代码= 2,它会导致xcode打印出200 5s然后崩溃.为什么会发生这种情况?

setter exc-bad-access swift

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