C# 如何在派生类中获取抽象类构造函数值
如何在派生类中获取抽象类构造函数值C# 如何在派生类中获取抽象类构造函数值,c#,class,abstract-class,C#,Class,Abstract Class,如何在派生类中获取抽象类构造函数值 public abstract class ABC { private string data = "hi"; protected ABC(string myString) { myString = data; } } public class XYZ: ABC
public abstract class ABC
{
private string data = "hi";
protected ABC(string myString)
{
myString = data;
}
}
public class XYZ: ABC
{
public string abc= "";
public XYZ(string myString)
: base(myString)
{
abc = myString;
}
}
XYZ var = new XYZ("567");
Response.Write(var.abc);
我获得567作为输出,如何获得“hi567”或“567hi”甚至“hi”。这是一个可以提供您想要的输出的东西,但不确定您在想什么-
public abstract class ABC
{
private string data = "hi ";
protected ABC(string myString)
{
data += myString;
}
public string PropToReturnValuePassedInCtor{ get { return data; } }
}
public class XYZ: ABC
{
public string abc = "";
public XYZ(string myString)
: base(myString)
{
abc = base.PropToReturnValuePassedInCtor;
}
}
var t = new XYZ("567");
Console.Write(t.abc); //hi 567
很简单,但有点奇怪:
using System;
namespace ConsoleApplication1
{
internal class Program
{
private static void Main(string[] args)
{
var var = new XYZ("567");
Console.WriteLine(var.abc);
Console.ReadLine();
}
}
public abstract class ABC
{
private string data = "hi";
protected ABC(string myString, out string outString)
{
myString = this.data;
outString = myString;
}
}
public class XYZ : ABC
{
public string abc = "";
public XYZ(string myString) : this(myString, string.Empty)
{
}
private XYZ(string myString, string outString) : base(myString, out outString)
{
this.abc = outString + myString;
}
}
}
您只需要将一个参数传递给基本构造函数。这似乎完全取决于语言的确切实现/语法。这是Java吗?我已经为你标记了这个问题。请记住,本网站接受任何编程语言或技术的问题,因此您必须使用标记来指定这些问题。请给出一个您试图完成的实际示例。这似乎是一件很奇怪的事情。我开始写答案,但后来我重申我不知道你想完成什么。请更好地解释。我只是想知道,我可以在派生类中获得抽象类构造函数值吗??,如果是,那么如何获得?我认为提问者想保持
数据的私有性,不想通过属性将其公开。@PeterPerot-如果OP想隐藏它,为什么要访问它?@AmitKumarGhosh:不知道。无论如何,使用没有参数的构造函数被认为是不好的做法。我从来没有使用过它,但是-它是可以做到的。如果您想向类公开某些私有数据,请使用属性。。。。受保护的属性-否则它从外面是可见的。我也在想out
参数,也在想“怪异”。在抽象类中,构造函数实际上不需要第一个参数,因此使用protectedabc(out-string-outString){outString=data;}
将ref或out参数传递给构造函数是很难看的