我有下面的代码,它只是返回一个错误。
class Foo {
public static logBar<T>(a: T): T {
console.log(a);
return a
}
}
class Bar extends Foo {
public static logBar<T extends number>(a: T): T {
console.log(a);
return a
}
}
Class static side 'typeof Bar' in
这是我在较早版本的TypeScript中一直在做的事情,我在C#中使用了这种方法,但它在最新的TypeScript 1.0版本中不起作用。
以下是过去起作用的东西:
class Base<T extends Base<T>> {
public children : Array<T>;
doAction() {
this.children[0].promise(); // used to work
}
promise() : T {
return this; // used to work
我有一个基类"B",它有两个构造函数,一个没有参数,另一个接受一个参数,一个整数。
我有一个子类"S",它继承自"B“,没有在其中定义任何构造函数。
我创建了一个S的实例,试图将一个整数传递给构造函数。
我知道错误:
Error 1 Too many arguments to 'Public Sub New()“
这让我感到惊讶,因为我认为如果没有在子类S中定义构造函数,那么基类构造函数方法,特别是带有单个整数param的构造函数方法,将被调用w/o,这是一个错误。
你知道我为什么会犯这个错误吗?建筑工人是个特例吗?
我有三节课:
public Class Example1
{
public void Method1()
{
}
public void Method2()
{
}
}
public Class Example2
{
public void Method3()
{
}
public void Method4()
{
}
}
public Class CompletelyDifferentClass
{
public void DifferentMethod(Example1/Example2 obj)
{
obj.Meth
我有以下的体系结构,而且由于继承,在类上调用destructors时,它会导致循环依赖。
namespace IntOp
{
ref class PwItem;
ref class PwTag;
public ref class PwItem
{
public:
PwItem(void* arg1, <sometype>arg2, unsigned __int64 arg3);
{
// some constructor work
}
virtual ~PwItem(){};
我使用的是AJAX.NET和C# ASP.NET
我的Soldier类是一种Person类。
[WebMethod, ScriptMethod]
public static Person getPerson(int personId)
{
return (Person)personService.getSoldier(personId);
}
这工作得很好。在Ajax端,我可以获取和设置Soldier属性。但是,当我发送回这个对象时,我不能将它转换回Soldier对象。
[WebMethod, ScriptMethod]
public static Person savePer
我正在用Java编写一个程序,并且我正在运行的inheritance.The代码有问题,它的结构如下:
public class BaseClass
{
ObjectInputStream a;
ObjectOutputStream b;
public BaseClass(ObjectInputStream a, ObjectOutputStream b)
{
this.a = a;
this.b = b;
}
//Some other code....
Thread subClass = new Thread(new SubClass());
subClass.star
我对泛型没有太多的经验,但是有人能给我解释一下为什么这个方法不起作用吗?我需要做些什么才能使它起作用?
我有3个接口。
public interface IOnlineView
public interface ICalendarView : IOnlineView
public interface IDateView : ICalendarView
然后我有3个演示者课程
public abstract class OnlinePresenter<T> where T : IOnlineView
{
protected OnlinePresenter(T view) {
我有一段代码(是从我的现实生活中设计出来的)
它无法编译,抱怨ExtendsB没有实现B::Run(A* a)。然而,理解A* Run();的扩展并没有问题。
class A { };
class ExtendsA : public A { };
class B
{
public:
virtual ~B(){}
virtual void Run(A* a) = 0;
virtual A* Run() = 0;
};
class ExtendsB : public B
{
public:
virtual ~ExtendsB(){}
// Not
在TypeScript (我的版本: 2.1.1)中,可以像这样设置类型参数的上限:
class Animal {}
class Cat extends Animal {}
class Kitten extends Cat{}
function foo<A extends Animal>(a: A) { /* */ }
如何设置A的下限?以下代码不起作用:
class Animal {}
class Cat extends Animal {}
class Kitten extends Cat{}
function foo<A super Kitten>(a: A)
也许我累了,或者没想清楚,也许这只是我从未尝试过的事情。
我有一个基本数据类型,我们称它为Foo,还有一个接口,让我们调用这个Problem,它公开了一些与这个Foo数据类型一起工作的函数。
其中一个接口函数返回一个Foo,其中一个函数接收一个Foo。
然后,我继承了Foo,为了创建一个新的数据类型,让我们称它为Bar,然后实现Problem接口,在重写中,我重写Foo类型为Bar。
对于返回Foo的函数,使用Bar覆盖是可行的。但是,对于接收Foo的函数,Bar覆盖的使用不起作用:
open class Foo(
open val name: String
)
interface
当我们输入断言时,如果Typescript知道我们不可能是对的,它就会报错。例如 type Counter = (start: number) => number;
let counterProblemDetected = ((start: number) => "yo") as Counter; 但是当非空检查被启用时,它不会像我们设置了类型时那样抱怨没有从函数返回: // 'strictNullChecks' is on
// Typescript does not complain
let counterProblemNotDetected
我们有两个类BasicRace和AdvancedRace。AdvancedRace继承自BasicRace
我有一个BasicRace,但我想把它‘转换’成高级类。
以下面的代码为例:
Module Module1
Sub Main()
Dim bRace As New BasicRace With {.CourseID = 1, .MeetingDate = "2013-05-01", .RaceNumber = 1}
Dim aRace As New AdvancedRace
' Upgrade bRace
我正在用three.d.ts develop分支编译TypeScript (可从获得)。我得到以下错误:
Types of static property 'Utils' of class 'THREE.Shape' and class 'THREE.Path'
are incompatible
问题是
Shape定义了一个静态Utils类
Shape间接地继承了Curve
Curve还定义了一个带有与Shape.Utils无关的签名的静态Utils类。
根据语言规范是不正确的。概括地说,three.d.ts包含如下代码:
d
我想在基类中定义一个函数,在一个子类中定义一个同名函数和另一个签名,如下所示:
class A {
public:
void foo () {}
};
class B : public A {
public:
void foo(int x) {}
};
int main() {
B b;
b.foo();
}
但是它会导致编译错误:no matching function for call to ‘B::foo()’。如果我在B类中注释foo定义,它会编译。如何解决这个问题?
我真正想要的是在基类中定义一个多义接口,并在子类中重新定义语义。
UPD:谢谢,这个例子的答案有效
我正在寻找一种在abstract static中实现TypeScript方法的方法。
这里有一个例子:
abstract class A {
abstract static b (): any // error
}
class B extends A {
static b () {}
}
这在public、private和protected方法中是允许的,但对于static方法则不允许。TypeScript返回以下错误:
‘静态’修饰符不能与‘抽象’modifier.ts一起使用(1243)
有什么解决办法吗?
在我的应用程序中,我有三个接口ICapture<T>、IDecoder<T, K>和IBroadcaster<K>。
现在,我实现了一个从Capture<IntPtr>继承的Capture<IntPtr>类(IntPtr是类生成的原始数据)。当数据由VideoCapture的一个对象生成时,我首先要将其从T解码为K,然后广播它。
我想知道的是:你会怎么锁这个?只需编写一个方法,如
var data = videoCapture.GetData();
var decoded = decoder.Decode(data);
broadca
希望有人能帮上忙,快把我逼疯了。
我有一个继承自父对象的类,它覆盖了该对象的一些方法。其中一个覆盖中的相关代码如下所示(我已经剔除了功能正常的代码):
public override void Initialise()
{
if (Url != null)
{
_logger.LogInfo("Initialising for file " + Url);
// call the base Initialise method
try
我在JavaScript中使用了如下所示的实现。
class Base {
installGetters() {
Object.defineProperty(this, 'add', {
get() {
return 5;
}
});
}
}
class New extends Base {
constructor() {
super();
this.installGetters();
}
s
我有一个基类,从它派生的类很少。我没有在基类中编写任何复制构造函数,它使用的是默认构造函数。
所以如果我写这段代码:
base* b;
b = new base(*this)
它工作得很好,但是如果我写这样的代码:
base* b;
b = new derive(*this)
它给我一个错误,因为派生类中没有匹配的函数。
我不能将基类的this指针传递给它的派生类复制构造函数来初始化它吗?
我试图为这个编码练习运行我的代码,并且我得到了以下错误:对BumbleBee::BumbleBee()的未定义引用,对GrassHopper::GrassHopper()的未定义引用
我正在练习继承,我使用昆虫类作为基类来继承函数和方法,但是我不明白我做错了什么。任何帮助都是非常感谢的,下面是代码:
#include <iostream>
using namespace std;
// Insect class declaration
class Insect
{
protected:
int antennae;
int legs;
int eyes;
我知道在stackoverflow中有很多文章/问题描述了Java中的向上转换和向下转换。我知道什么是向上和向下。但我的问题并不具体到这一点。
向上转换-从子对象到父对象的转换-编译器负责处理。不需要强制转换
向下转换-从父级到子级的转换-需要显式转换
public class Animal {
public void getAnimalName(){
System.out.println("Parent Animal");
}
}
public class Dog extends Animal{
public void getDog