主题:关于ToString()和类/访问修饰符的困惑[求助]
本人是菜鸟,刚自学c#没1个星期,遇到了很多困惑...希望论坛的大大们能给我指点迷津.
谢谢了...
偶将在代码的注释上说明自己不理解的地方,希望大家赏脸各抒己见...
代码1:
using System;
using System.Collections.Generic;
using System.Text;
using AliasToMyClass = namespace1.Program; //创建空间命名的别名
namespace namespace1
{
class Program
{
public override string ToString() /* ToString()实现的是什么操作?这里override关键字是什么作用?*/
{
return "you are in namespace1.Program";
}
}
}
namespace namespace2
{
class Program{}
}
namespace namespace3
{
using namespace1;
using namespace2;
class test
{
public static void Main()
{
AliasToMyClass somevar = new AliasToMyClass();/*Program类的构造函数是Program(),这AliasRoMyClass()又是什么?*/
/*somevar 貌似是新创建的对象,但下面括号内为什么不是somevar.成员,而直接是somevar?*/
Console.WriteLine(somevar);/*somevar怎么就知道调用ToString()方法的retrun值?*/
}
}
}
类似的代码2:
using System;
using System.Collections.Generic;
using System.Text;
namespace mypoint
{
class Point
{
public int x, y;
public Point()
{
x = 0;
y = 0;
}
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
public override string ToString() /*ToString()方法是什么?覆盖?怎么覆盖?*/
{
return (String.Format("({0},{1})",x,y));/*String.Format是什么?*/
}
}
class MainClass /*为什么又的另创建一个MsinClass类?一个Ponit类不就能完成吗?这里另创建的好处是什么?*/
{
static void Main(string[] args)
{
Point p1 = new Point();/*类默认的成员可访问性是private,这里为什么又能调用上一个类创建对象?*/
Point p2 = new Point(5,3);
Console.WriteLine("Point #1 at {0}",p1);/*对象p1怎么就知道调用ToString()方法?override关键字联系双方的?*/
Console.WriteLine("Point #2 at {0}",p2);
}
}
}
这两段代码类似,只有些细节不同...所以里面有共同的问题如:ToStrong()方法的问题,也有不同的问题...希望见义勇为的大大们能帮偶指点一二,在下感激涕淋...
谢谢了...
偶将在代码的注释上说明自己不理解的地方,希望大家赏脸各抒己见...
代码1:
using System;
using System.Collections.Generic;
using System.Text;
using AliasToMyClass = namespace1.Program; //创建空间命名的别名
namespace namespace1
{
class Program
{
public override string ToString() /* ToString()实现的是什么操作?这里override关键字是什么作用?*/
{
return "you are in namespace1.Program";
}
}
}
namespace namespace2
{
class Program{}
}
namespace namespace3
{
using namespace1;
using namespace2;
class test
{
public static void Main()
{
AliasToMyClass somevar = new AliasToMyClass();/*Program类的构造函数是Program(),这AliasRoMyClass()又是什么?*/
/*somevar 貌似是新创建的对象,但下面括号内为什么不是somevar.成员,而直接是somevar?*/
Console.WriteLine(somevar);/*somevar怎么就知道调用ToString()方法的retrun值?*/
}
}
}
类似的代码2:
using System;
using System.Collections.Generic;
using System.Text;
namespace mypoint
{
class Point
{
public int x, y;
public Point()
{
x = 0;
y = 0;
}
public Point(int x, int y)
{
this.x = x;
this.y = y;
}
public override string ToString() /*ToString()方法是什么?覆盖?怎么覆盖?*/
{
return (String.Format("({0},{1})",x,y));/*String.Format是什么?*/
}
}
class MainClass /*为什么又的另创建一个MsinClass类?一个Ponit类不就能完成吗?这里另创建的好处是什么?*/
{
static void Main(string[] args)
{
Point p1 = new Point();/*类默认的成员可访问性是private,这里为什么又能调用上一个类创建对象?*/
Point p2 = new Point(5,3);
Console.WriteLine("Point #1 at {0}",p1);/*对象p1怎么就知道调用ToString()方法?override关键字联系双方的?*/
Console.WriteLine("Point #2 at {0}",p2);
}
}
}
这两段代码类似,只有些细节不同...所以里面有共同的问题如:ToStrong()方法的问题,也有不同的问题...希望见义勇为的大大们能帮偶指点一二,在下感激涕淋...