各位C#高手看看这个菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 04:41:29
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication13
{

public class Order
{
public Order()
{
Guid guid = Guid.NewGuid();
ID = guid.ToString();
}

// 对于每一份订单,其订单序号都是实时确定的常量。
public string ID;

public override string ToString()
{
return "Order ID: " + ID;
}
}
class Program
{
static void Main(string[] args)
{
Order m = new Order();
Console.WriteLine(m.ID);
Console.ReadKey();
}
}
}
我想问的是这个ToString()不是已经override了吗,而且应该执行了这个方法了吧,我认为输出应该是带有"Order ID: "段的,可是为什么没有?而且这个ID也不是定义为readonly,可以改变吧~哪位详细的介绍下。

怎么可能呢,每个对象都隐式继承自object,override那个只是重写了object的ToString()方法,而ID = guid.ToString(); 调用的是Guid的而方法,没有被重写.

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication13
{

public class Order
{
public Order()
{
Guid guid = Guid.NewGuid();
ID = guid.Sotaugtear();
}

那个方法是不能被重写得。
如果想出现你想得结果
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication13
{

public class Order
{
public Order()
{
Guid guid = Guid.NewGuid();
ID = ToStringF(guid);
}

// 对于每一份订单,其订单序号都是实时确定的常量。
public string ID;

public string ToStringF(Guid g)
{
return "Order ID: " + g.ToString();
}
}
class Program
{
static void Main(string[] args)
{
Order m = new Order();
Console.WriteLine(m.ID);
Console.ReadKe