C# 方法类的字符串
那么,我如何才能将“kalle”改为一个名为“name”的字符串,这样程序的用户就可以决定调用该人的时间C# 方法类的字符串,c#,string,class,C#,String,Class,那么,我如何才能将“kalle”改为一个名为“name”的字符串,这样程序的用户就可以决定调用该人的时间 *我可以澄清我想做什么:*我正在寻找的是,我可以决定用户想要的任何名称,而不是“kalle”,所以将“kalle”更改为字符串…当前版本的代码存在一些问题 name是Person中的一个静态字段,它与Person类型而不是实例相关联。删除静态修饰符,这样每个人都可以有自己的名字 C#members的默认可见性为private,这意味着没有人可以访问name或age。它们应该是内部的或公共的
*我可以澄清我想做什么:*我正在寻找的是,我可以决定用户想要的任何名称,而不是“kalle”,所以将“kalle”更改为字符串…当前版本的代码存在一些问题
是name
中的一个静态字段,它与Person
类型而不是实例相关联。删除Person
修饰符,这样每个静态
人都可以有自己的名字
- C#members的默认可见性为
,这意味着没有人可以访问private
或name
。它们应该是age
或内部的
公共的
- 通常,您应该更喜欢属性而不是字段
class Program
{
static void Main(string[] args)
{
string name= "noName";
name= Console.ReadLine();
person kalle = new person();
}
class person
{
static string name;
int age;
public void setName(string n)
{
name= n;
}
}
当前版本的代码有几个问题
是name
中的一个静态字段,它与Person
类型而不是实例相关联。删除Person
修饰符,这样每个静态
人都可以有自己的名字
- C#members的默认可见性为
,这意味着没有人可以访问private
或name
。它们应该是age
或内部的
公共的
- 通常,您应该更喜欢属性而不是字段
class Program
{
static void Main(string[] args)
{
string name= "noName";
name= Console.ReadLine();
person kalle = new person();
}
class person
{
static string name;
int age;
public void setName(string n)
{
name= n;
}
}
在程序中调用
kalle.setName(name)
后,在classperson
中删除字段string name
的static
修饰符。在classperson
调用kalle.setName(name)后删除字段string name
的修饰符
在您的程序中。覆盖ToString()
,类似以下内容:
class person
{
public string name { get; set; }
public int age { get; set; }
}
...
string name = "noName";
name = Console.ReadLine();
person kalle = new person();
kalle.name = name;
因此,您可以:
class Person
{
.....
.....
public override string ToString() {
return name;
}
}
因此这里的kalle
的字符串表示形式变成了“Hello”(name
属性的内容)
如果这不是你想要的,请澄清
编辑
多读一本的例子
person kalle = new person();
kalle.name = "Hello";
string value = falle.ToString();
字符串s=null;
而((s=Console.ReadLine())!=“x”){
WriteLine(“您将添加多少人?”);
int howMany=Console.ReadLine();
对于(int i=0;i覆盖ToString()
,类似以下内容:
class person
{
public string name { get; set; }
public int age { get; set; }
}
...
string name = "noName";
name = Console.ReadLine();
person kalle = new person();
kalle.name = name;
因此,您可以:
class Person
{
.....
.....
public override string ToString() {
return name;
}
}
因此这里的kalle
的字符串表示形式变成了“Hello”(name
属性的内容)
如果这不是你想要的,请澄清
编辑
多读一本的例子
person kalle = new person();
kalle.name = "Hello";
string value = falle.ToString();
字符串s=null;
而((s=Console.ReadLine())!=“x”){
WriteLine(“您将添加多少人?”);
int howMany=Console.ReadLine();
对于(int i=0;i是否要动态设置实例的名称
所以你有
string s = null;
while((s = Console.ReadLine())!="x") {
Console.WriteLine("how many people would you add?");
int howMany = Console.ReadLine();
for(int i=0;i<howMany ;i++)
{
//create Person objects and add them to the collection
//ask user to insert the name for current Person
Console.WriteLine(string.Format("Please insert the name for the Person {0}", i));
//read the name
string name = Console.ReadLine();
//construct Person object, based on (i) and (name)
}
}
如果用户输入“sven”,您将得到
person kalle = new person()
??是否要动态设置实例的名称
所以你有
string s = null;
while((s = Console.ReadLine())!="x") {
Console.WriteLine("how many people would you add?");
int howMany = Console.ReadLine();
for(int i=0;i<howMany ;i++)
{
//create Person objects and add them to the collection
//ask user to insert the name for current Person
Console.WriteLine(string.Format("Please insert the name for the Person {0}", i));
//read the name
string name = Console.ReadLine();
//construct Person object, based on (i) and (name)
}
}
如果用户输入“sven”,您将得到
person kalle = new person()
??kalle
是一个人,所以你不能将其更改为字符串。你能澄清一下你的意思吗?看起来你缺少了一些代码。你能解释一下你想要更容易理解的是什么吗?你想要变量名kalle
更改吗?变量名不是这样工作的。kalle
是一个人,所以你不能更改你能澄清你的意思吗?看起来你缺少了一些代码。你能解释一下你想要什么更容易理解吗?你想改变变量名kalle
?这不是变量名的工作方式。你也可以将它保留为私有,使用setName
@Blorgbeard这是C,但不是Java。我会的使用属性(新代码示例所做的)与显式getName
/setName
方法我可以澄清我想要做的事情:我正在寻找的是,我可以决定用户想要什么而不是“kalle”的名称,所以更改“kalle”对于一个字符串…@JaredPar这是真的-那么也许可以从建议的代码中删除setName?@Blorgbeard doh,在我喝完第一杯咖啡之前,我回答了这个问题。我读过这个问题,认为它是一个ctor而不是setName
方法。我删除了它。你也可以将它保留为私有,并使用setName
@Blorgbeard这是C#虽然不是Java,但我会使用属性(新代码示例会使用),而不是显式的getName
/setName
方法。我可以澄清我想要做的事情:我正在寻找的是,这样我就可以决定用户想要的任何名称,而不是“kalle”,所以更改“kalle”对于字符串…@JaredPar,这是真的-那么也许可以从建议的代码中删除setName?@Blorgbeard doh,在我喝完第一杯咖啡之前,我回答了这个问题。我读过这个问题,认为它是一个ctor而不是一个setName
方法。我删除了它。我正在寻找的是这样我就可以决定用户想要的名称“kalle”的d.@kalle:我可以理解。你想让用户而不是kalle.name写“你好”.name??If,so:这是不可能的。好吧,但是在If语句中有没有任何方法可以让我得到用户指定的人数???@flamme:请提供一个小的代码示例,我不太明白你的意思。`Console.WriteLine(“你要添加多少人?”);int howMany=Console.ReadLine();`and加上“for”重复并这样做,可以是x个我以后可以给名字的人,等等。我要找的是,我可以决定用户想要什么名字,而不是“kalle”。@kalle:我可以理解。你希望用户以某种方式而不是kalle。name可以写“Hello”.name??如果,那么:这是不可能的。好吧,但在一个i中有没有任何方式