Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未找到继承的成员_C#_Inheritance - Fatal编程技术网

C# 未找到继承的成员

C# 未找到继承的成员,c#,inheritance,C#,Inheritance,我有一个基类叫做KeyRatioSymbol。 我有一个从KeyRatioSymbol继承的类,名为GuruFocusKeyRatioSymbol KeyRatioSymbol具有以下更新方法: /// <summary> /// Updates an existing key ratio symbol by setting the values from the new <see cref="KeyRatioSymbol"/>. ///

我有一个基类叫做KeyRatioSymbol。 我有一个从KeyRatioSymbol继承的类,名为GuruFocusKeyRatioSymbol

KeyRatioSymbol具有以下更新方法:

        /// <summary>
    /// Updates an existing key ratio symbol by setting the values from the new <see cref="KeyRatioSymbol"/>.
    /// </summary>
    public virtual void Update<T>(T newKeyRatioSymbol) where T : KeyRatioSymbol
    {
        this.Identifier = newKeyRatioSymbol.Identifier;
    }
//
///通过设置新符号中的值来更新现有密钥比率符号。
/// 
公共虚拟无效更新(T newKeyRatioSymbol),其中T:KeyRatioSymbol
{
this.Identifier=newKeyRatioSymbol.Identifier;
}
GuruFocusKeyRatioSymbol定义了成员CurrencyId,并希望在更新时覆盖更新方法以包含新的CurrencyId:

        private int _CurrencyId;
    /// <summary>
    ///  Gets or sets the CurrencyId
    /// </summary>
    public int CurrencyId { get { return this._CurrencyId; } set { this.SetProperty(ref this._CurrencyId, value); } }


    public override void Update<GuruFocusKeyRatioSymbol>(GuruFocusKeyRatioSymbol newKeyRatioSymbol)
    {
        base.Update(newKeyRatioSymbol);
        this.CurrencyId = x.CurrencyId; // Compiler error
    }
private int\u CurrencyId;
/// 
///获取或设置CurrencyId
/// 
public int CurrencyId{get{返回此。_CurrencyId;}set{this.SetProperty(引用此。_CurrencyId,value);}}
公共覆盖无效更新(GuruFocusKeyRatioSymbol newKeyRatioSymbol)
{
base.Update(newKeyRatioSymbol);
this.CurrencyId=x.CurrencyId;//编译器错误
}
现在编译器抱怨:“GuruFocusKeyRatioSymbol”不包含“CurrencyId”的定义

为什么编译器在类GuruFocusKeyRatioSymbol中找不到CurrencyId成员


问候

Update
方法中,您仅将泛型参数命名为
GuruFocusKeyRatioSymbol
,而在父级中使用了名称
T
。命名泛型参数
GuruFocusKeyRatioSymbol
并不意味着它将属于您的
GuruFocusKeyRatioSymbol
类型,您刚才有两个同名的不同类型。如果您将泛型方法参数命名为
T
,这是常见的约定,它将具有相同的行为,但很明显,为什么该类型的对象不一定具有
CurrencyID
;它们可以是任何类型的键比率符号,而不仅仅是特定的键比率符号。

Update
方法中,您只需将泛型参数命名为
GuruFocusKeyRatioSymbol
,而在父级中使用了名称
T
。命名泛型参数
GuruFocusKeyRatioSymbol
并不意味着它将属于您的
GuruFocusKeyRatioSymbol
类型,您刚才有两个同名的不同类型。如果您将泛型方法参数命名为
T
,这是常见的约定,它将具有相同的行为,但很明显,为什么该类型的对象不一定具有
CurrencyID
;它们可以是任何类型的键比率符号,而不仅仅是那个特定的;基类定义了
T
的泛型类型参数,而派生类提供的类型参数为
GuruFocusKeyRatioSymbol
。从
this.CurrencyId=x.CurrencyId
,其中定义了
x
。如果我们能在这里看到更完整的示例,那就太好了。据我们所知,您在某个地方键入了一个类名,
this
x
的类型不是您所认为的类型。@MetroSmurf是对的,但它并没有像看上去那样做。类型参数
GuruFocusKeyRatioSymbol
的名称隐藏了覆盖该方法的封闭类
GuruFocusKeyRatioSymbol
的名称。这就是它不起作用的原因
GuruFocusKeyRatioSymbol
只是基本方法的
T
的另一个名称。我的意思是不能在重写中专门化类型参数。意图是错误的,但语法确实有效。@AluanHaddad-您删除了原始评论,而本次讨论的意图已丢失。没有太多的理由继续下去。@AluanHaddad-当然了;基类定义了
T
的泛型类型参数,而派生类提供的类型参数为
GuruFocusKeyRatioSymbol
。从
this.CurrencyId=x.CurrencyId
,其中定义了
x
。如果我们能在这里看到更完整的示例,那就太好了。据我们所知,您在某个地方键入了一个类名,
this
x
的类型不是您所认为的类型。@MetroSmurf是对的,但它并没有像看上去那样做。类型参数
GuruFocusKeyRatioSymbol
的名称隐藏了覆盖该方法的封闭类
GuruFocusKeyRatioSymbol
的名称。这就是它不起作用的原因
GuruFocusKeyRatioSymbol
只是基本方法的
T
的另一个名称。我的意思是不能在重写中专门化类型参数。意图是错误的,但语法确实有效。@AluanHaddad-您删除了原始评论,而本次讨论的意图已丢失。没有太多理由继续。啊,谢谢。通过重写该方法,我只需重新实现它,并将泛型参数T(基类)重命名为GuruFocusKeyRatioSymbol.Ah,谢谢。通过重写该方法,我只需重新实现它,并将泛型参数T(基类)重命名为GuruFocusKeyRatioSymbol。