【问题标题】:Can you write the value of a String directly in the code c#可以直接在代码c#中写一个String的值吗
【发布时间】:2015-01-30 22:48:56
【问题描述】:

我想告诉我们我创建的字符串的值并在我的代码中写出该值。在这个例子中,我不知道字符串“属性”的值:

public void EditUser(Int32 user_no, String attribut, String change)
{
    tmpUser = GetUser(user_no);

    if (attribut.Equals("username"))
    {
        tmpUser.username = change;
    }
    else if (attribut.Equals("mail"))
    {
        tmpUser.mail = change;
    }
    else
    {
        tmpUser.password = change;
    }
}

我知道我不能这样做:

tmpUser.attribut = 改变;

有没有办法做到这一点并避免使用 if else 语句。

【问题讨论】:

  • 可以使用反射,但不是很实用。我认为您应该询问您正在尝试解决的问题,而不是询问您认为可以解决的方式。
  • 呵呵,你的问题完全变了……你在开玩笑吗?
  • 抱歉给您带来了困惑
  • 我完全赞成关闭这个mess 不要更改9th inning 底部的规则,就像我们在编码世界中所说的那样......你需要阅读一些基本的 C# 教程关于如何分配变量哇tutorialspoint.com/csharp/csharp_variables.htm 你知道如何使用调试器吗?还有change when you enter the method .. you have some serious Logic 缺陷的价值是多少,或者您可能正在寻找out Parameter
  • 我知道如何分配变量,我使用的是 MVC,这是我的模型,我不知道用户要在视图中写什么。

标签: c# string using value-of


【解决方案1】:

不,不是那样的。您可以做的最接近的事情是使用ReflectionConsole 类中获取WriteLine 方法的正确重载。还有Invoke它。

例如:

var method= typeof(Console)
                 .GetMethod("WriteLine",
                            BindingFlags.Public | BindingFlags.Static,
                            null,
                            new [] { typeof(string) },
                            null);

method.Invoke(null, new object[] { "Hello" });

【讨论】:

  • 反射并非特定于控制台类。
  • Not sure who downvoted this 但是这是一个很棒/有效的解决方案.. 甚至无需运行 Console would write out the word Hello 出色示例的代码就很明显
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
相关资源
最近更新 更多