从不同的类中获取私有字符串

时间:2015-07-31 07:28:44

标签: c#

我需要从类中获取私有字符串,并计算字符串中单词的频率。

计数是最容易的部分...我正在努力的一点是从第二堂课获得字符串。

继承人我想要的东西

public class GetString
{
  private string myText = "this is the string that i need to get"         
  private string text;

  public GetString()
  {
    text = myText
  }

非常感谢任何和所有的帮助。我也被告知我不能编辑这个课程

6 个答案:

答案 0 :(得分:5)

我的观点中有三个选项:

  1. 您可以myText public
  2. 您可以return myText来自其他公开会员,最好是property
  3. 您可以通过反射访问该值(请参阅:How to get the value of private field in C#?)。

答案 1 :(得分:1)

这似乎相当有趣,你的getString类中没有任何内容返回字符串。尝试像

这样的东西
public class getString
{
  private string myText = "this is the string that i need to get"

  public String getString()
  {
    return myText
  }

getString a = new getString();
String hiddenString = a.getString();

答案 2 :(得分:1)

使用Properties属性是一个提供灵活机制来读取,写入或计算私有字段值的成员。):

public string MyText
{
    get { return myText; }
    private set { myText = value; }
}

答案 3 :(得分:1)

似乎你的 getString 类(顺便说一下 - 用小写字母命名一个错误的类)包含 text 属性。如果此属性是公共的,您可以使用它来获取字符串。如果它不公开,可能有一种方法可以公开它。您的代码不完整,因此无法确定。

如果没有公开属性或公开字符串的方法,那么唯一的方法是通过反射

答案 4 :(得分:1)

您不能将构造函数用于此目的。试试这个:

public class Foo
{
    private string myText = "this is the string that i need to get";

    public Foo()
    {
    }

    public String GetString()
    {
        return this.myText;
    }
}

每个方法都应该具有void关键字或返回类型,在您的情况下是String。

答案 5 :(得分:0)

要继续使用@Petrichor,您还可以使用接口:

public interface IHasText
{
  string GetPrivateText();
}

public class GetString : IHasText
{
  private string myText = "this is the string that i need to get";

  string IHasText.GetPrivateText()
  {
    return myText;
  }
}

var val = new GetString();
var asInterface = (IHasText)val;

string text = asInterface.GetPrivateText();