好的,我是新手,我有一个简单的问题.我上课了
public class StudentName
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int ID { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在主要方法中,我试图调用类似的东西:
public class Program
{
public static void Main()
{
int number = 123;
var result = number;
if (number.Equals(123))
{
result = new StudentName
{
FirstName = "Jurand",
LastName = "Kowalsky",
ID = 183
};
}
System.Console.WriteLine(result);
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
我没有将对象分配给另一个var的原因是有时我有不同的方法重载,它们采用不同的参数.
有没有办法将int转换为对象?或者任何方式做到这一点?
这两行
int number = 123;
var result = number;
Run Code Online (Sandbox Code Playgroud)
告诉编译器result类型int.这是在编译时设置的.
这条线
result = new StudentName
Run Code Online (Sandbox Code Playgroud)
尝试将StudentName结果分配给结果.这不起作用,因为它已经有了类型int.
虽然您可以先将一个整数,然后将StudentName分配给同一个变量,方法是将其类型更改为object
object result = number;
Run Code Online (Sandbox Code Playgroud)
闻到糟糕的程序设计.
注意这一行
System.Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)
如果result仍然是整数将工作.如果将其更改为object,它将只打印出System.Object(或类似的东西).如果您最终更改程序设计以便使用StudentName类型,则可以覆盖该类中的ToString()以提供有意义的输出,例如
public class StudentName
{
/* Rest of the class here */
public override ToString()
{
return FirstName + " " + LastName + " ID: " + ID;
}
}
Run Code Online (Sandbox Code Playgroud)
我没有将对象分配给另一个var的原因是有时我有不同的方法重载,它们采用不同的参数.
我不确定你要完成什么,但看看C#Generics.它们允许您编写一次可以适用于各种类型的代码,然后指定使用泛型类的确切类型.
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |