| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1332 人关注过本帖
标题:关于C#的基础问题……
只看楼主 加入收藏
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
关于C#的基础问题……
刚开始看C#,想请教几个问题:
1、int[] array1 = new int[]{1,2,3,4,5};这句话中,new的意思是什么,new是变量修饰符吧?那么是什么意思呢?比如public的意思我知道是公共的,都可以用的……
2、常量的类型可以省略么?比如const PI=3.1415926这句话
3、如果在Main方法中又使用了其他的方法,比如使用了自己定义的方法Find,那么这个Find方法可以在Main方法之后定义么?还是必须在Main方法之前定义?如果在之后定义,需要像C一样在Main方法中声明么?
4、枚举变量的值不能直接赋给其他类型的变量么?比如这句:int i = (int)DayOfWeek.Monday;
5、Console.WriteLine()这句是换行么?那么为什么有些例子里面没有这句好像输出的结果也可以换行啊?
6、像decimal pi = 3.14159M;这句话中,M可以省略么?写不写M有什么区别么?
7、MessageBox.show的完整格式是什么?"+"有什么作用?
8、各种类的方法,比如Array类中的那些FindAll之类的方法,方法就是C中的函数吧?那么在哪能找到这些方法的原型啊?就是其中的参数该怎么写?我的书上没有,很是郁闷……
……
暂时请教这么多,多谢大侠们不吝赐教……
搜索更多相关主题的帖子: 基础 
2010-08-21 21:03
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:5 
1:new 在 c语言中是 malloc的意思。只是它用起来比malloc方便一点。
2:不能,const float PI = 3.1415926 比 #define PI 3.1415926要好,因为一眼就看出来const float PI = 3.1415926 这个 PI的类型。
3:c#怎么整的我忘了, Java中的方法是没有声明的。
4:不太清楚,
5:其他例子应该是有 转义操作符的吧?
6:不太清楚
7:不太清楚,+ 是用来连接两个字符串的
8:是的,这些方法不是有参数的么?

[ 本帖最后由 BlueGuy 于 2010-8-21 21:17 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2010-08-21 21:16
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
呼……
2楼什么都懂啊?呵呵……

我很懒,但我讨厌别人说我懒……
2010-08-21 21:42
记忆的持续
Rank: 2
等 级:论坛游民
帖 子:25
专家分:22
注 册:2010-8-21
收藏
得分:5 
1.  我的理解是   new  的关键字  主要  要实例化   的时候用的
2   如果把 常量的关键字去掉就不是常量了  ,去掉它的值也可以发生改变
3 Main方法下面还可以继续定义方法  不过我习惯把方法都做成一个类   在Main方法中调用就可以了
4  定义的枚举类型是不能发生改变的
5  Console.WriteLine()   中最后面的Line  是换行  如果写成 Console.Write()这样的换就是不换行
6   这个后面应该可以去掉  没什么关系  后面的M  表示 你定义的那种类型       (应该是吧)
7   问题不是那么清楚  是不是   MessageBox.Show("退出","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Asterisk)   这样子的   + 号表示两个字符串相连接
8  那种你去下载个 帮助文档 后所搜一下就好了
2010-08-21 21:50
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
顺便再请教一下c#项目的结构,比如那些文件分别是什么……
cs后缀的是代码文件吧?,那么sln后缀的呢?csproj后缀的呢?pdb后缀的呢?
多谢……

我很懒,但我讨厌别人说我懒……
2010-08-21 22:55
accp2015
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2010-7-27
收藏
得分:5 
1. new  好比是又在一个新的内存中存了值 如 string Name=“name”;与 string Name=new string(name);她们所存储的位置是不一样的。
2   不清楚
3 Main方法下面还可以继续定义方法,放在Main方法前面与后面都一样 ,没有什么区别的!
4  定义的枚举类型是不能发生改变的
5  Console.WriteLine()   中最后面的Line  是换行  如果写成 Console.Write()这样的换就是不换行 如果写成 Console.Write(“\n”)这样也可以实现换行!
6   不清楚
7   问题不是那么清楚  是不是   MessageBox.Show("退出","系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Asterisk)   这样子的   + 号表示两个字符串相连接 +有好几种意思了,如:string name=“张三”;Console.WriteLine(“我的名字叫:”+name)   输出,我的名字叫张三
8  不知道你具体是桌面个意思,我举个简单的关于参数的例子

public static void Main(){
    int num1=1;
    int num2=2;
    //定义一个 m来接收他返回的最大值!
    int m=max(num1,num2);
    Console.WriteLine(“它们最大的数是:”+m);
    //或者直接+max(num1,num2)也可以
    Console.WriteLine(“它们最大的数是:”+max(num1,num2));


}
//定义两个参数 a和b,
public int max(int a,int b)
{
    //定义一个变量用来接收它们的最大值
    int i=0;
    if(a>b)
    {
    i=a;
    }else
    {
    i=b;
    }
    //返回 最大值
    return i;
}
2010-08-22 01:08
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:5 
以下是引用vs_inzaghi在2010-8-21 21:03:51的发言:

刚开始看C#,想请教几个问题:
1、int[] array1 = new int[]{1,2,3,4,5};这句话中,new的意思是什么,new是变量修饰符吧?那么是什么意思呢?比如public的意思我知道是公共的,都可以用的……
2、常量的类型可以省略么?比如const PI=3.1415926这句话
3、如果在Main方法中又使用了其他的方法,比如使用了自己定义的方法Find,那么这个Find方法可以在Main方法之后定义么?还是必须在Main方法之前定义?如果在之后定义,需要像C一样在Main方法中声明么?
4、枚举变量的值不能直接赋给其他类型的变量么?比如这句:int i = (int)DayOfWeek.Monday;
5、Console.WriteLine()这句是换行么?那么为什么有些例子里面没有这句好像输出的结果也可以换行啊?
6、像decimal pi = 3.14159M;这句话中,M可以省略么?写不写M有什么区别么?
7、MessageBox.show的完整格式是什么?"+"有什么作用?
8、各种类的方法,比如Array类中的那些FindAll之类的方法,方法就是C中的函数吧?那么在哪能找到这些方法的原型啊?就是其中的参数该怎么写?我的书上没有,很是郁闷……
……
暂时请教这么多,多谢大侠们不吝赐教……
1、C++里的new在堆中分配一段存储空间,C#中也一样,但是C# .net是托管代码,所以不需要像C++一样释放堆空间,GC(垃圾收集器)将会帮我们自动释放这些空间。
2、不可以,这个和C++是一样的,常量也必须有一个类型。因为C#和C++都是强类型语言。
3、可以。这点和C/C++不一样,C/C++要使用一个类、或者一个函数、外部变量都需要事先声明,而C#不一样,C#可以直接访问,不需要声明。
4、可以,这个是和C++一样,每一个枚举都是代表一个值,你可以使用强类型转换来获取它的值。反过来也一样,但要使用Enum.Parse方法来将值转换成枚举。
5、是。通过在字符串中加入"\n"也可以实现换行。
6、可以,M代表一个类型标识,如果没有M,在C#中,默认是D(双精度浮点型)。就像这样3.1344F,这是代表一个单精度浮点型。
7、MessageBox.Show有很多种重载方法,常用的方法有MessageBox.Show("This is a test."); || MessageBox.Show("Content", "Title", MessageBoxButtons.OK, MessageBoxIcon.Information);,具体请参照MSDN。MessageBox.Show就是弹出一个提示框,提示用户一些信息。(可以配置这个提示框中的按钮控件的个数和图标)。
8、强烈建议楼主装一个MSDN2008,这类的所有问题都可以解决了。

共同进步。
2010-08-22 09:25
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
收藏
得分:0 
以下是引用vs_inzaghi在2010-8-21 22:55:22的发言:

顺便再请教一下c#项目的结构,比如那些文件分别是什么……
cs后缀的是代码文件吧?,那么sln后缀的呢?csproj后缀的呢?pdb后缀的呢?
多谢……
cs是C#源代码文件,sln是解决方案文件,csproj是C#项目文件,pdb是调试信息文件。
2010-08-22 09:27
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
回复 楼主 vs_inzaghi
会了一点皮毛,占在c语言的角度看 c++/c#/java,你会发现它们都是在 简化c 语言。

我就是真命天子,顺我者生,逆我者死!
2010-08-22 10:50
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
回复 7楼 zhoufeng1988
很详细,多谢……

我很懒,但我讨厌别人说我懒……
2010-08-22 12:48
快速回复:关于C#的基础问题……
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016316 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved