我有一个类,它有一个字符串('name')和一个特征字典('features').通过在文件中查找名称并从中拉出功能来构建实例.我在代码中的其他地方添加了额外的功能.我想知道的是,是否可以在子构造函数中使用父对象的实例?
例如
public parentClass(string name)
{
this.name = name
this.features = ... gets features from file ...
}
public childClass(parentClass parentObject, feature extraFeatureValue)
{
childObject = parentObject???
this.features[extraFeature] = extraFeatureValue
}
Run Code Online (Sandbox Code Playgroud)
我假设我应该
a)为具有额外功能的对象创建一个新类,所以我可以告诉哪个
b)使新类成为旧类的子类,因为它只是一些额外的功能,我想要保持方法
谢谢
我有两个清单:
object = ['square','circle','triangle']
description = ['red','green']
Run Code Online (Sandbox Code Playgroud)
我想要输出一个词典列表:
{'square': 'red', 'circle': 'red', 'triangle': 'red'}
{'square': 'red', 'circle': 'red', 'triangle': 'green'}
{'square': 'green', 'circle': 'red', 'triangle': 'green'}
Run Code Online (Sandbox Code Playgroud)
等等
所以对象不重复,但描述可能会.每个字典都有原始的对象列表作为其键.
我不确定我想要的算法的名称,所以我找不到正确的算法.(我已经查看了python中两个列表的排列,但是它正在寻求不同的结果.两个列表的排列是同一个问题,但是使用OCAML.)
我有一个泛型方法,它采用类型为T的Enumerables.如果T也是一个Enumerable,我需要将它传递给另一个函数.但是,由于该函数只接受Enumerables,而T是通用的,因此不会编译.在我通过之前,我正在检查T是可枚举的 - 但显然不能解决这个问题.
我怎样才能做到这一点?
(显然我可以编写另一个只采用IEnumerable <IEnumerable <T >>的方法,并在相关的地方使用它,但这看起来不够优雅.)
例:
public static bool EnumerablesAreEqual<T>(IEnumerable<T> a, IEnumerable<T> b)
{
foreach (T x in a)
{
if (x is Enumerable && !EnumerableContainsEnumerable(x, b))
return false;
if (!b.Contains(x))
return false;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我看过这篇文章,但我认为这不是同一个问题.