小编Mat*_*ths的帖子

“EqualOperator()”和“NotEqualOperator()”方法如何在此“ValueObject”实现中工作(Microsoft Docs)?

在领域驱动设计中,我们引入了 a 的概念ValueObject,其中对象不带有标识。

Microsoft在其微服务系列中提供了它们的实现ValueObject,其中它们进行了覆盖Equals(),以便两个ValueObject具有相同值的 ' 被认为是相同的。

EqualOperator()我在下面列出了它们的实现,但我的问题与和方法有关NotEqualOperator()- 这是如何工作的?他们什么时候被叫?

我熟悉运算符重载,但这似乎是我以前从未见过的实现,而且我找不到任何有关它的文档。

这是实现:

public abstract class ValueObject
{
    protected static bool EqualOperator(ValueObject left, ValueObject right)
    {
        if (ReferenceEquals(left, null) ^ ReferenceEquals(right, null))
        {
            return false;
        }

        return ReferenceEquals(left, null) || left.Equals(right);
    }

    protected static bool NotEqualOperator(ValueObject left, 
        ValueObject right)
    {
        return !(EqualOperator(left, right));
    }

    protected abstract IEnumerable<object> GetAtomicValues();

    public override bool Equals(object obj)
    {
        if (obj == null || …
Run Code Online (Sandbox Code Playgroud)

c# domain-driven-design value-objects

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

使用ExpandableListView为展开的群组项目设置边框

我试图找到一种创建材料样式的方法ExpandableListView,并且我使用的是位于材料设计网站上的示例。我下面的示例是:

物料设计可扩展列表视图

当组扩展时,我试图复制出现在组顶部和底部的边框,但我不知道从哪里开始。

你能帮我吗?

android expandablelistview material-design

5
推荐指数
0
解决办法
2967
查看次数

菊花链函数调用指针

我最近在和一个学生一起工作时遇到了一个场景,我在努力理解以下示例失败的原因。

我有一个指向对象的指针Game,而Game它本身也有指向的指针vector<Pair>。失败的行是的最后一行main(),其中我采用菊花链方法:

gamePointer->getPairs()->push_back(pair);

在上面的行中,getPairs()返回vector<Pair>*,然后push_back()调用将一个新值添加Pair到向量中。结果是read access violation。有趣的是,换出Gamevector<Pair>一个string,比方说,让我写了以下内容,它的工作原理:

gamePointer->getPairs()->append("B");

我简化了问题,并复制了完整的示例:

#include "pch.h"
#include <iostream>
#include <string>
#include <vector>

using namespace std;

class Pair 
{
private:
    string previous;
    string next;

public:
    Pair();
    Pair(string previous, string next);

    string getPrevious();
    string getNext();

    void setPrevious(string previous);
    void setNext(string next);
};

class Game 
{
private:
    vector<Pair>* pairs;
public:
    Game();

    vector<Pair>* getPairs();
    void setPairs(vector<Pair>* …
Run Code Online (Sandbox Code Playgroud)

c++ pointers vector

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