标签: extending-classes

PHP类在文件夹之外扩展另一个类

我有一个普通班,我喜欢把它扩展到其他班级.

我的目录设置了这些文件夹中的文件夹和类文件,例如

class/users/users.class.php classes/general/general.class.php

我有扩展通用类的用户类,但由于它们位于不同的文件夹中,我猜想找不到通用类.

class users extends general {

}

有人可以帮我解决这个问题.

我还应该提到我正在使用自动加载功能

php class extending-classes

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

扩展TextBox控件并更改默认样式的一部分

我想创建具有扩展功能的WPF TextBox的类库(dll文件)。但是我想更改文本框默认样式的一部分(IsMouseOver属性触发器)。

我创建了一个新的WPF用户控件库项目,从中删除了生成的.XAML和.cs文件,并添加了一个新的类文件。然后,我派生自TextBox类,但我不知道如何访问样式XAML。

我不知道应该怎么做。

在我的项目中,我目前仅具有此.cs文件,而没有.XAML文件:

namespace CustomControls
{
    public class CustomTextBox : TextBox
    {
        private string customProperty;
        public string CustomProperty
        {
            get { return customProperty; }
            set { customProperty = value; }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf custom-controls extending-classes

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

使用相同的名称扩展 Node.addEventListener 方法

我正在尝试扩展该Node.addEventListener方法,以便我可以进行一些事件管理,例如:

Node.prototype.on = function (type, listener, useCapture) {
    'use strict';
    var i, evt;

    this.events = this.events || [];


    for (i = 0; i < this.events.length; i += 1) {

        evt = this.events[i];

        if (this === evt[0] && type === evt[1]) {
            this.removeEventListener(type, evt[2], evt[3]);
            this.events.splice(i, 1);
        }

    }

    this.events.push([this, type, listener, useCapture]);

    return this.addEventListener(type, listener, useCapture);  
};
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,on我不想给它命名,而是想将它命名为相同的名称addEventListener,这样我就可以保证任何 javascript 都可以在它上面工作。

所以这里的要点是,如果我将函数命名addEventListener为 return 子句中的 on ,它将导致无限循环。所以我在想是否有什么办法让它调用该super方法呢?

提前致谢

javascript dom addeventlistener extending-classes

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

在 C# 中扩展现有类而不创建新类的方法

我有一个很好的完整课程,正在做很棒的事情。我需要通过替换其中的一些方法来允许用户使用这个类,但是不允许继承,因为这个类在其他应用程序类中也有使用。

就像您有一个创建表格的类,但是您需要允许用户重新定义创建表格单元格的方法,以便用户在此单元格中打印自定义内容。但是,该类具有打印单元格内容的默认方式(以防用户不需要对其进行自定义)。

是否有任何常用或标准化的方法来实现这一目标?

c# methods inheritance extending-classes

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

有没有理由不扩展std :: set来添加下标运算符?

我std::set用来存储类的唯一实例.std::set没有重载的下标运算符,所以你不能这样做set[0].

我找到了一种方法:

auto myClass = *std::next(set.begin(), index);
Run Code Online (Sandbox Code Playgroud)

但是,我发现一遍又一遍地复制该代码是单调的.所以我决定只扩展std::set(class sset)并且只是重载其中的下标运算符会更方便.

template <class T>

class sset: public std::set<T>
{
public:
    T operator[](const uint32_t i) const
    {
        if(i <= (this->size()-1))
            return *std::next(this->begin(), i);
        else
            throw std::out_of_range("Index is out of range");
    }
};

int main()
{
    auto myClass = set[0]; //works and no exception thrown

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

我实现了所期望的行为,但我发现必须有一个原因,标准不包括下标运算符.当然不只是懒惰.

是否有任何先例不利或可能出现的未来问题?

c++ class stdset extending-classes c++11

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