abstract-class 相关问题

抽象类是无法实例化的类。它们的存在是为了为几个具体类提供通用功能和接口规范。

使用基类和它可能实现的接口的属性的方法

我正在尝试为游戏制作一个基本的“法术系统”,并试图想出一种以模块化方式实现“法术行为”的好方法。我想要的地方有一个小问题

回答 1 投票 0

RetrievalQA.from_chain_type 显示无法实例化抽象的验证错误

当我尝试使用本地 llm 和 PineCone VectorDataBase 构建 RetrievalQA.from_chain_type 时。然而,由于无法实例化的错误,它无法创建检索器...

回答 1 投票 0

如何显示我从子类设置的参数的输出?

我需要帮助访问我使用子类输入的变量。我在主类中为子类创建了一个对象,但是,我不知道如何访问我拥有的输入

回答 1 投票 0

多重继承:如何正确重写方法?物体的互补性的互补性

TL; DR 我正在尝试实现空间区域的互补的互补 当前的解决方案具有巨大的副作用 该解决方案基于多重继承。哪个...

回答 1 投票 0

Python 3 中抽象基类的工厂类方法的类型提示

我有两个抽象类,AbstractA和AbstractB。 AbstractB 是泛型,其类型参数绑定到 AbstractA。 AbstractB 进一步有一个工厂类方法,它返回一个实例......

回答 1 投票 0

具有泛型返回类型和一个泛型参数的 Dotnet 类方法

当返回类型是通用的并且参数之一也是通用的时,我尝试创建一个类方法。 返回类型应该是泛型类 Result,如下所示: 公开课结果...

回答 1 投票 0

抽象与封装,不是书本定义,现实世界的例子

我到处搜索过这个话题,抽象和封装有什么区别 ,甚至是投票最多的堆栈溢出问题之一,但最后似乎令人困惑......

回答 1 投票 0

不兼容的类型:ArrayList<Link>无法转换为Links<Link>

我正在尝试实例化一个抽象类,但它不起作用。 抽象类 Links 实现 List{ } 链接 notVisitedLinks = new ArrayList(); 我...

回答 1 投票 0

在通用 C# 类中链接隐式运算符

对于以下通用 C# 类,我想将 T 转换为 K: 公共抽象类 ValueType : IValueType 其中 K : ValueType,new() { 公共抽象电视...

回答 4 投票 0

如何从 PHP 8 中的抽象类调用非静态函数?

我想更新我们当前在 PHP 7.2 上运行的项目,但我遇到了一个无法轻松解决的问题。 公共函数 getCategories($type){...} //在另一个没有实现Category的文件中 $

回答 1 投票 0

有没有办法让基类要求派生类具有与派生的同一类的对象进行比较的函数?

我有一项家庭作业,该作业的一小部分要求一个抽象的父“电影”类,其中包含三个具体子类:“喜剧”、“戏剧”和“古典”。 每个子类永远不会

回答 1 投票 0

C# 泛型匹配抽象类类型时出现的问题

我试图运行这段代码,但是当我尝试检查时,存在一个问题:对象的类型与其抽象类类型不匹配 它在“if(处理程序是处理程序 我试图运行这段代码,但是当我尝试检查时,存在一个问题,即对象的类型与其抽象类类型不匹配 它位于“if (handler is Handler h)”这一行 void Main() { var requestHandler = new RequestHandler(); var result = requestHandler.Handle(new GetAge()); Console.WriteLine(result); } public interface IRequest<T> { } public class GetAge : IRequest<int> { } public interface IHandler {} public abstract class Handler<TRequest, TResponse> : IHandler where TRequest : IRequest<TResponse> { public TResponse Handle(IRequest<TResponse> request) { return Handle((TRequest)request); } protected abstract TResponse Handle(TRequest requst); } public class GetAgeHandler : Handler<GetAge, int> { protected override int Handle(GetAge request) { return 20; } } public class RequestHandler { public Dictionary<Type, IHandler> requestHandlers = new() { [typeof(GetAge)] = new GetAgeHandler() }; public T Handle<T>(IRequest<T> request) { var handler = requestHandlers[request.GetType()]; if (handler is Handler<IRequest<T>, T> h) { return h.Handle(request); } return default; } } 看起来应该可以,但似乎我做错了什么 简单来说,模式匹配失败是因为泛型类型默认是不变的。即使您有Handler<GetAge, int>,也不认为与Handler<IRequest<int>, int>兼容。如果泛型类型是协变或逆变,那么这是允许的,但在这种特定情况下,这是不可能的。 解决此问题的一种方法是定义 Handle 方法,如下所示: public TResponse Handle<TRequest, TResponse>(TRequest request) where TRequest : IRequest<TResponse> { var handler = requestHandlers[request.GetType()]; if (handler is Handler<TRequest, TResponse> h) { return h.Handle(request); } return default(TResponse); } 你会这样称呼它: var result = requestHandler.Handle<GetAge, int>(new GetAge());

回答 1 投票 0

抽象@property - 实例化“部分实现”类?

我阅读了关于抽象类 abc.ABC 的非常好的文档。它有这个例子(我为了这个问题而缩短了): 导入 abc 基类(abc.ABC): @财产 @abc。

回答 1 投票 0

C++ 在具体类中强制重写方法

C++中有没有一种方法可以编写一个具体的类,当从它派生另一个类时,该类有一个必须重写的方法。抽象类允许强制派生类创建

回答 6 投票 0

C# - 从基类更新子类

我有一种情况需要区分不同“类型”的客户对象。 IE。: 公共抽象类客户 { 受保护的客户(字符串客户类型,字符串

回答 1 投票 0

定义抽象方法而不指定参数

我正在编写一个带有抽象方法的抽象类(因此,从它继承的所有类都必须实现该方法)。但是,我不想指定该方法必须使用的参数,...

回答 5 投票 0

将特征矩阵存储在二进制文件中的通用函数

我知道下面的代码可以用来将数据类型为double的特征矩阵的数据写入二进制文件。 模板 void WriteEigenMatrix(const Eigen::Matrix 我知道以下代码可用于将数据类型为 double 的特征矩阵的数据写入二进制文件。 template<class T> void WriteEigenMatrix(const Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& m, const char* fileName) { std::ofstream outFile(fileName, std::ios_base::out | std::ios_base::binary); outFile.write(m.data(), m.rows()*m.cols()); outFile.close();` } 如何概括此函数以接受其他特征数据类型(如 Eigen::Vector 和 Eigen::Array)作为输入? 如果我使用 Eigen::EigenBase,我知道该函数将接受所有此类数据类型。然而,问题是我不能再使用m.data(),因为它没有在基类中定义。 有什么建议可以解决这个问题吗? 如果您只想允许“密集”对象,您可以按如下方式操作: template<class Derived> void WriteEigen(const Eigen::DenseBase<Derived>& dense, const char* fileName) { std::ofstream outFile(fileName, std::ios_base::out | std::ios_base::binary); outFile.write(reinterpret_cast<const char*>(dense.derived().data()), dense.rows() * dense.cols()); outFile.close(); } 所有稠密矩阵(包括向量和数组)都继承自DenseBase,在derived上调用DenseBase将返回具体的矩阵类型。 或使用您喜欢的任何底座。

回答 1 投票 0

Xamarin iOS 绑定 - 协议 - 无法创建抽象类的实例

我使用 Sharpie 为 Zebra 扫描仪 SDK 生成了一些绑定代码。 斑马扫描仪 SDK 一旦我处理了 [Verify] 属性,生成的代码就可以正常构建。 的起点...

回答 2 投票 0

抽象类打字稿(Angular2)的依赖注入

我有抽象类(没有构造函数),我想向其中注入另一个类。 抽象类: 从 '../../shared/services/errorHandler.service' 导入 { ErrorHandler } ; 导入 { 注入 }...

回答 4 投票 0

Type.GetProperties 方法返回一个 PropertyInfo[] 但 PropertyInfo 是 Abstract

在 C# 文档中,Type 类的 GetProperties 方法返回属性信息数组:System.Reflection.PropertyInfo[]。您可以在此处的文档中看到这一点: https://学习。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.