标签: getter

编写自由函数来获取类成员的最小方法是什么?

(读完这篇文章及其接受的答案后,这个问题突然出现在我的脑海中。)

假设一个Foo您无法修改的类,它有一个publicmember bar,但没有它的 getter 。

您可能想要编写一个函数来在传递 a 时获取该成员Foo,以便您可以在更高阶的函数中使用它,例如std::transform和 类似的函数。

换句话说,给定这样一个类

struct Foo {
    int bar{};
    ~Foo() { bar = -1; } // on most compilers this helps "verifying" that the object is dead
};
Run Code Online (Sandbox Code Playgroud)

我想要一些getFoo与具有相同语义的类型,其中是 类型的任何对象,可以是纯右值、x值或左值。getBar(expr-of-type-Foo)expr-of-type-Foo.barexpr-of-type-FooFoo

你怎么写呢?

我最初想到的是:

        constexpr auto getBar = overload(
            [](auto& foo) -> decltype(auto) { return (foo.bar); },
            [](auto const& foo) -> decltype(auto) { return …
Run Code Online (Sandbox Code Playgroud)

c++ generics getter non-member-functions perfect-forwarding

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

我应该将此getter转换为方法吗?

在过去的几天里,我一直在阅读C#中的属性和方法之间的差异,以及何时使用它们.我读到的大多数文章/问题都说吸气剂应该是"轻巧的",并且内部永远不会有大量的逻辑或复杂的操作.

现在我有一个get我认为在属性和方法之间的界限,所以我想看看你们都在想什么,如果我应该改变方法或留在吸气剂.

还欢迎任何其他建议:D

public decimal[] getPreprocData
{
    get
    {
        int i = 3;
        decimal[] data = new decimal[9];

        data[0] = (start.Value.Hour * 3600) + (start.Value.Minute * 60);
        data[1] = duration.Value;
        data[2] = flowRate.Value;

        foreach (NumericUpDown nud in gbHTF.Controls.OfType<NumericUpDown>().OrderBy(nud => nud.TabIndex))
        {
            data[i] = nud.Value;
            i++;
        }

        return data;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# methods getter properties

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

当我有一个getter方法时,Setter方法给出下划线错误

我经常使用二传手.这是我对此的代码:

.H:

@property (nonatomic, strong) NSDate *lastSyncDate;
Run Code Online (Sandbox Code Playgroud)

.M:

-(void)setLastSyncDate:(NSDate *)lastSyncDate {
    _lastSyncDate = lastSyncDate;

    //Do something
}
Run Code Online (Sandbox Code Playgroud)

然后我输入了一个getter方法:

-(NSDate *)lastSyncDate {
    //Something happens
    return lastSyncDate;
}
Run Code Online (Sandbox Code Playgroud)

然后_lastSyncDate标识符发出unidentified identifier错误.

我不确定为什么会这样?

iphone getter setter objective-c ios

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

C#setter/getter有两个变量

是否可以选择为两个变量执行一个setter/getter?或者唯一的选择是两个单独的setter/getter,如下所示:

int var1;
int var2;

public int var1 
    {
    get { return var1; }
    set { var1 = value; }
    }

public int var2 
    {
    get { return var2; }
    set { var2 = value; }
    }
Run Code Online (Sandbox Code Playgroud)

c# getter setter getter-setter

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

ArgumentOutOfRangeException.使用getter,setter - C#

我需要创建一个类Person,有字段: name,surnamesalary.如果salary低于0,我得到例外:

ArgumentOutOfRangeException.使用getter,setter

我尝试过:

public class Employee
{
    public string name { get; set; }
    string surname { get; set; }
    private int salary;
    public int Salary
    {
        get
        {
            return salary;
        }
        set
        {
            if (salary < 0)
            {
                throw new ArgumentOutOfRangeException("salary", "wyplata ma byc wieksza niz 0");
            }
            else
            {
                salary = value;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在主要:

Employee tmp = new Employee("michal", "jakowski", -1400);
Run Code Online (Sandbox Code Playgroud)

c# getter setter

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

C++ 如何构建静态私有成员的 getter?

我正在使用 C++ 来完成我的一个小项目。我想在类头文件中定义一个静态常量字符串,并使用(静态)getter 返回该字符串。这是头文件

//*.h
class Authordd : public personDB
{
    public:
        Authordd();
        Authordd(QString dbName, QString dbSurname);
        Authordd(QString dbName, QString dbSurname, unsigned int dbid);
        static std::string getTableName();
    private:
        static const std::string tableName;
};
Run Code Online (Sandbox Code Playgroud)

这是cpp文件:

const std::string Authordd::tableName = "Author";

Authordd::Authordd():personDB()
{
    ;
}

Authordd::Authordd(QString dbName, QString dbSurname):personDB(dbName, dbSurname)
{
    ;
}


Authordd::Authordd(QString dbName, QString dbSurname, unsigned int dbid):personDB(dbName, dbSurname)
{
    id = dbid;
}

static std::string getTableName(){
    return (Authordd::tableName);
}
Run Code Online (Sandbox Code Playgroud)

编译时出现以下错误: /../persondb.cpp:21: error: 'tableName' is a private member of 'personDB' …

c++ getter static private

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

使用 =&gt; C# 设置 getter

我可以简化这个吗...

\n
public class Foo : FooBase\n{\n    public override Valor Nome\n    {\n        get\n        {\n            return new Valor\n            {\n                ValorEntrada = "ag\xc3\xaancia centro"\n            };\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

......这样的事情?

\n
public class Foo : FooBase\n{\n    public override Valor Nome => Valor.ValorEntrada = "ag\xc3\xaancia centro";\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Valor有一个名为 的属性ValorEntrada,它接收一个string.

\n

c# getter

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