C#中静态方法的疑惑,为什么调用时会出错呢?
开发环境VS2008==========Progam.cs文件的内容=====
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsolCreateMyClass
{
class Program
{
static void Main(string[] args)
{
string[] strName = new string[] { "张三", "李四", "王五" };
string[] strID = new string[] { "0001", "0002", "0003" };
MyClass oMyClass = new MyClass();
for (int i = 0; i < 3; i++)
{
oMyClass.ID = strID;
oMyClass.Name = strName;
Console.WriteLine("ID={0}", oMyClass.ID);
Console.WriteLine("Name={0}", oMyClass.Name);
}
oMyClass.GetName();
MyClass.Prints("打印测试"); //此句编译报错,说“ConsolCreateMyClass.MyClass”并不包含“Prints”的定义
Console.ReadLine();
}
}
}
为什么会出现上面错误呢?不是静态方法,要用类名直接调用吗?
===========MyClass.cs文件的内容===
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsolCreateMyClass
{
class MyClass
{
private string name = "";
private string id = "";
////属性
public string ID //定义用户ID属性
{
get //可读属性
{
return id;
}
set //可写属性
{
id = value;
}
}
public string Name //定义用户Name属性
{
get
{
return name;
}
set
{
name = value;
}
}
/////方法
public void GetName()
{
Console.WriteLine("Name={0}", name);
}
//静态方法,必须用类明调用,而不是对象名
public static void PrintS(string str)
{
Console.WriteLine(str);
}
}
} 很简单:
----------------------
定时是:public static void PrintS(string str)
调用是:MyClass.Prints("打印测试");
编译器的报告是完全正确滴,呵呵。 哎呀,低级错误啊,我说怎么回事,居然调用时弄成小写了,谢谢啊
页:
[1]