还请高人们给我补补基础,请不要回复Mark、up之类与补基础无关内容,thanks

dahai99007 2008-12-01 03:54:38
问题从这考试:
楼主问了:
没写过控制台应用程序,请各位高手别笑话我菜鸟。

小弟写了个控制台应用程序,大概是这样:
namespace MyApp
{
class Program
{
static void Main(string[] args)
{

}

private string aa()
{
return "aa";
}
}
}

但是在Main函数里写代码的时候似乎智能感知找不到aa()这个函数,请问是不是需要把aa()函数设置成public的或者static的?感谢各位
我的回复1:你可以把这个函数写成静态的,也就是加上static修饰符,也可以创建个类测对象来调用它。(这写了错别字类错写成测了)。
回复2:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Program p = new Program();
string str = "";
str=p.aa();
Console.WriteLine(str);
Console.ReadLine();
}
private string aa()
{
return "aa";
}
}
}

回复3:
也可以这样:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str = "";
str = Program.aa();
Console.WriteLine(str);
Console.ReadLine();
}
private static string aa()
{
return "aa";
}
}
}
引用了别人的回复回复4:
引用 2 楼 hulihui 的回复:
Main()是静态static函数,其调用的本类函数必须是static
我的回复:
Main函数是程序的入口点,本身是静态的,没说它调用本类函数必须是static的啊。
在这我理解他的“其调用的”是在Main函数中调用的本类函数必须static,我认为不是这样的我就回复了,而且我的回复2里边也证实了main函数可以调用实例函数。
下边的高人给我回复了:
引用 10 楼 dahai99007 的回复:
引用 2 楼 hulihui 的回复:
Main()是静态static函数,其调用的本类函数必须是static

Main函数是程序的入口点,本身是静态的,没说它调用本类函数必须是static的啊。
linux_ch 的回复
這個答案很雷,你的基礎很差~~
号多繁体字,我猜了半天是这个意思:这个答案很雷,你的基础很差
还好心提醒我:
linux_ch 2008年12月01日 15点21分16秒 说:
你的基礎很差,看到你的回復
linux_ch 2008年12月01日 15点22分05秒 说:
Main函数是程序的入口点,本身是静态的,没说它调用本类函数必须是static的啊。
好好看看基礎的吧
dahai99007 2008年12月01日 15点39分04秒 说:
是啊,还请高人们多指点!Thanks!

所以发个帖子请高人给我补补基础,Thanks!
本想发200分呢,可提示说我无权发这么多分 :)
...全文
242 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
dahai99007 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 stning 的回复:]
我不知道你的问题是什么,但我知道,你应该去找本基础的书看看。至少,看看msdn也好
[/Quote]
你连帖子的意思都没搞明白!
lq20051610211 2008-12-02
  • 打赏
  • 举报
回复
我是来学习的~
zhnzzy 2008-12-02
  • 打赏
  • 举报
回复
你上面没加static,所以先要实例化才可以的
加了static,表示该方法是类的,所以就不用实例化,直接点就可以了
stning 2008-12-02
  • 打赏
  • 举报
回复
我不知道你的问题是什么,但我知道,你应该去找本基础的书看看。至少,看看msdn也好
linux_ch 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 gtiroy 的回复:]
简单说,静态的不要初始化,非静态的需要初始化。

为什么会这个我还是没有太深入的理解。最简单的理解就是要是不这么做,程序执行不了。
[/Quote]
這是因為一個類有實例化多個后個靜態只有一個拷貝而非靜態的有多個拷貝
gtiroy 2008-12-02
  • 打赏
  • 举报
回复
简单说,静态的不要初始化,非静态的需要初始化。

为什么会这个我还是没有太深入的理解。最简单的理解就是要是不这么做,程序执行不了。
linux_ch 2008-12-02
  • 打赏
  • 举报
回复
我錯了還不行嗎?
hanyu0528 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 dahai99007 的回复:]
引用 31 楼 HDNGO 的回复:
你太调皮了~

男孩子调皮点有什么不好?呵呵~
[/Quote]
你们真逗!
king19840811 2008-12-01
  • 打赏
  • 举报
回复
遇到高人了。。。。
dahai99007 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 linux_ch 的回复:]
Main函数是程序的入口点,本身是静态的,没说它调用本类函数必须是static的啊
我理解你的這個它调用本类函数必须是static是直接調用而并不是實例化
[/Quote]
我没写"直接"吗不是!
dahai99007 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 HDNGO 的回复:]
你太调皮了~
[/Quote]
男孩子调皮点有什么不好?呵呵~
linux_ch 2008-12-01
  • 打赏
  • 举报
回复
Main函数是程序的入口点,本身是静态的,没说它调用本类函数必须是static的啊
我理解你的這個它调用本类函数必须是static是直接調用而并不是實例化
HDNGO 2008-12-01
  • 打赏
  • 举报
回复
你太调皮了~
dahai99007 2008-12-01
  • 打赏
  • 举报
回复
这个问题与以下问题有点类似:
甲:必须是1+1=2;
乙:谁说的?2+0也等于2吗。
甲:你的说法很雷,回去好好补补小学数学吧!
乙:谁告诉你的必须是1+1=2?
甲:老师刚教我的,课本上也是这么写的。
乙:...

if(甲还没学到2+0也等于2==true)
{
Console.WriteLine("甲的说法很雷人,呵呵");
Console.ReadLine();
}
再见品月 2008-12-01
  • 打赏
  • 举报
回复
楼主。。。看来也搞清楚了吧。。。
呵呵,都没恶意。。算了。。
dahai99007 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 linux_ch 的回复:]
Main函数是程序的入口点,本身是静态的,没说它调用本类函数必须是static的啊
我是針對你這個的回復的
[/Quote]
我这个回复有什么问题吗?
linux_ch 2008-12-01
  • 打赏
  • 举报
回复
Main函数是程序的入口点,本身是静态的,没说它调用本类函数必须是static的啊
我是針對你這個的回復的
tang_fu 2008-12-01
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Program p = new Program();
string str = "";
str=p.aa();
Console.WriteLine(str);
Console.ReadLine();
}
private string aa()
{
return "aa";
}
}
}
dahai99007 2008-12-01
  • 打赏
  • 举报
回复
我再直接点:
引用 2 楼 hulihui 的回复:
Main()是静态static函数,其调用的本类函数必须是static


Main函数是程序的入口点,本身是静态的,没说它调用本类函数必须是static的啊。

我这样回复很雷吗?
程序yy 2008-12-01
  • 打赏
  • 举报
回复
静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例。非静态方法可以访问类中的任何成员,而静态只能访问类中的静态成员。看这个例子:

class A
{
int x=0;
static int y;
static int F(){
x=1; //错误,不允许访问
y=2; //正确,允许访问
}


linux_ch 理解有误 楼主太较真了 呵呵
加载更多回复(23)

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧