求c#高手支招

谁抢了我的网速 2013-10-18 09:29:52
本身是学java的,先前没有接触过c#;
刚应聘上一家公司,让我学c#,需要在比较短的一段时间内,求各位大神指点。
c#与java的相似,不同之处(越详细越好,网址也行);
学习c#的书籍,数据库书籍;
c#常用工具,文档等;
规范操作,特别注意等方面;
好的文章,博客,网站,网页;
学习路线;
还有您在学习中的心得体会等;
回答以上任一问题都行(越详细越好)。
谢谢各位了!
...全文
521 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
gclol 2013-10-20
  • 打赏
  • 举报
回复
引用 20 楼 yanyu_xingchen 的回复:
java中没有指针和struct,c#中有struct
那关于指针又是一处区别了,C#中可以使用,但是使用指针的代码段必须用unsafe标识,而且指针只能指向栈上变量,托管类对象的地址获取不到
lilin8989252 2013-10-19
  • 打赏
  • 举报
回复
找些例子,如果你要做winform的话,在这上面下些实例,简单的很容易上手,复杂的部分只能工作时候一点点学了,c#入门经典 看看,其实C#与Java大体差不多。
蔡袅 2013-10-19
  • 打赏
  • 举报
回复
如果你要做那些性能高,对内存占用讲究的C#软件那你得多研究线程,GC,同异步在处理方式与java的区别 如果稍微简单的管理程序等那么当天上手的
  • 打赏
  • 举报
回复
看了一天c# 总结了一些与java的不同点,如有错的或表述不对的,还望指出 struct 定义结构类型,用new分配,在栈内存; #region 折叠之间的代码 #endregion ; @符号两种功能 1、在字符串前面加上 @ 则字符串中的转义字符不再起作用 String name = @"E:\Visual Studio 2010_Projects"; 2、可以在字符串中加换行 String name = @"E:\Visual Studio 2010_Projects fdsagfasdf"; 当加@符号时, 需要加两个“”才能输出“” String name = @"E:\Visual Studio "" 2010_Projects"; 引用参数:传递的是实参本身,修改值会反应到实参上 public void Fun2(ref int i) 输出参数:可以返回多个值 public void fun3(out int i, out int j) 数值类型的参数:(param type[]) (类似java中的可变参数 jdk1.5后特性) 可选参数:c#4.0后出现 通常情况下,方法调用时必须指定每个参数的值,可选参数实现设置参数默认值, public void Foo(int i = 0, int j = 1, int x = 0) 重写:(与java区别比较大) 未标记为 virtual、abstract 或 override,无法进行重写 也就是说如果一个类中的方法要想能够被子类重写,必须加上以上关键字; 且子类中也必须在返回类型前加上关键字 override 子类中没有加 override 表示不是重写父类的方法,是子类新方法 密封性: 类的密封性:不希望被继承 在类前加关键字 sealed (java中是final) 方法的密封性:可以被子类继承,不能被子类重写 对于方法 只有是override修饰才可以被密封,也就是说其方法必须是父类可重写的方法 sealed public override double GetArea() 接口和java基本相同,只是语法不通 c#中无论是接口和类的继承都是用 ":" 接口的实现不是重写 不用加 override 抽象类与java相同(包括语法) 抽象类中抽象方法的实现需要重写,当然需要加上 override public abstract double GetArea(); abstract public double GetArea(); 两种情况都能编译通过 抽象类继承接口, 要么实现接口,要么重新将接口中的方法在该抽象类中定义为抽象方法,不能置之不理 属性中的只读域 (readOnly) 只读域: 1、readOnly修饰 2、一旦被初始化不能被修改 3、只能在初始化(声明或构造函数中)时赋值 4、即可以是静态域,也可以是实例域 5、可以是c#中的任意类型 与常量(const,相当于java中的 final) 相同点: 初始化后值不能被修改; 不同点: 1、常量只能在声明时被赋值; 2、只读域值是运行时确定,常量值编译时确定; 3、只读域可以被声明为任意类型,常量声明类型有限(值类型和部分引用类型(如String)) public readonly int name; //编译能通过 public const int age; ///不能编译通过 就看了这么多,那里有不正确的还望指出
  • 打赏
  • 举报
回复
引用 16 楼 gclol 的回复:
java里用final定义常量,c#用const java还用final封闭类或类中的方法,c#用yield java可以在函数头末尾加上throw exception,确保异常要么被处理,要么继续向上抛,C#没有这种保障机制
java中final
引用 9 楼 gclol 的回复:
[quote=引用 7 楼 caozhy 的回复:] [quote=引用 4 楼 gclol 的回复:] import 命名空间.*; 相当于 using 命名空间;
这就说错了。[/quote]另外请教,java里是不是也没有指针和结构啊?[/quote] java中没有指针和struct,c#中有struct
  • 打赏
  • 举报
回复
引用 15 楼 gclol 的回复:
[quote=引用 11 楼 caozhy 的回复:] [quote=引用 8 楼 gclol 的回复:] [quote=引用 7 楼 caozhy 的回复:] [quote=引用 4 楼 gclol 的回复:] import 命名空间.*; 相当于 using 命名空间;
这就说错了。[/quote]哦。。求科普[/quote] Java的import相当于C#的引用+using。 C#的using不是必须的。 另外,Java要求每个类必须和它的文件名以及路径对应。 因此Java不需要命名空间,文件的路径就是命名空间。 C#没有这个要求,你可以在一个源代码文件中写很多个类,也可以给它们不同的层次关系。[/quote]~~确实,java里一个文件只能定义一个类挺蛋疼的,我一直以为有什么解决办法自己没了解到呢,这下不用纠结了。关于这点,得采访下楼主,是不是先学java的人,会觉得C#里一个文件可以定义多个类很乱啊?[/quote] java中一个文件中可以定义多个类,只不过最多只能有一个类被public修饰,且文件名须和public修饰的类名相同。到目前为止,没有感觉到c#中一个文件中定义多个类很乱
gclol 2013-10-19
  • 打赏
  • 举报
回复
java里用final定义常量,c#用const java还用final封闭类或类中的方法,c#用yield java可以在函数头末尾加上throw exception,确保异常要么被处理,要么继续向上抛,C#没有这种保障机制
gclol 2013-10-18
  • 打赏
  • 举报
回复
引用 11 楼 caozhy 的回复:
[quote=引用 8 楼 gclol 的回复:] [quote=引用 7 楼 caozhy 的回复:] [quote=引用 4 楼 gclol 的回复:] import 命名空间.*; 相当于 using 命名空间;
这就说错了。[/quote]哦。。求科普[/quote] Java的import相当于C#的引用+using。 C#的using不是必须的。 另外,Java要求每个类必须和它的文件名以及路径对应。 因此Java不需要命名空间,文件的路径就是命名空间。 C#没有这个要求,你可以在一个源代码文件中写很多个类,也可以给它们不同的层次关系。[/quote]~~确实,java里一个文件只能定义一个类挺蛋疼的,我一直以为有什么解决办法自己没了解到呢,这下不用纠结了。关于这点,得采访下楼主,是不是先学java的人,会觉得C#里一个文件可以定义多个类很乱啊?
  • 打赏
  • 举报
回复
就好像你工作中需要电脑编程,那么你值得给自己也买一台。 如果你只是觉得时髦就买了,那么你买来电脑可能也就是弄点简单的,不会用它来编程。
  • 打赏
  • 举报
回复
用你的工作经验为路标,就能很快学好。如果为了学一个编程语言而学习编程语言,那么其实就没有什么可说的了(因为那只是对上学的学生安排说的)。
wind_cloud2011 2013-10-18
  • 打赏
  • 举报
回复
c#与java的区别,看看吧,或许有帮助.http://blog.csdn.net/spring_0534/article/details/2914034 http://www.cnblogs.com/Asa-Zhu/archive/2012/11/08/2761114.html
threenewbee 2013-10-18
  • 打赏
  • 举报
回复
引用 8 楼 gclol 的回复:
[quote=引用 7 楼 caozhy 的回复:] [quote=引用 4 楼 gclol 的回复:] import 命名空间.*; 相当于 using 命名空间;
这就说错了。[/quote]哦。。求科普[/quote] Java的import相当于C#的引用+using。 C#的using不是必须的。 另外,Java要求每个类必须和它的文件名以及路径对应。 因此Java不需要命名空间,文件的路径就是命名空间。 C#没有这个要求,你可以在一个源代码文件中写很多个类,也可以给它们不同的层次关系。
xisat 2013-10-18
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
c#与java的相似,不同之处(越详细越好,网址也行); C#有而Java没有的概念:委托、Lambda表达式、Linq、Attribute、dynamic 学习c#的书籍,数据库书籍; C# in depth 3rd(深入理解C#) c#常用工具,文档等; Visual Studio + MSDN Library 规范操作,特别注意等方面; 操作电脑的时候不要把鼠标和键盘丢到有水的洗脚盆里面。 好的文章,博客,网站,网页; www.google.com
gclol 2013-10-18
  • 打赏
  • 举报
回复
引用 7 楼 caozhy 的回复:
[quote=引用 4 楼 gclol 的回复:] import 命名空间.*; 相当于 using 命名空间;
这就说错了。[/quote]另外请教,java里是不是也没有指针和结构啊?
gclol 2013-10-18
  • 打赏
  • 举报
回复
引用 7 楼 caozhy 的回复:
[quote=引用 4 楼 gclol 的回复:] import 命名空间.*; 相当于 using 命名空间;
这就说错了。[/quote]哦。。求科普
threenewbee 2013-10-18
  • 打赏
  • 举报
回复
引用 4 楼 gclol 的回复:
import 命名空间.*; 相当于 using 命名空间;
这就说错了。
智商余额不足 2013-10-18
  • 打赏
  • 举报
回复
如果你java学得不错的话,那么应该知道如何学习的~
gclol 2013-10-18
  • 打赏
  • 举报
回复
又想起一个,java不能重写运算符,C# C++ 都可以
gclol 2013-10-18
  • 打赏
  • 举报
回复
对Java不是很会,说点最细的 for(int i:array)相当于foreach(int i in array) super相当于base extends相当于冒号(:) bealoon相当于bool import 命名空间.*; 相当于 using 命名空间; 关于多态,java里继承类可以自动重写基类方法,c#里只能重写虚拟方法,而且要加上override 还有语言本身的库函数,那就说不完了
VIP_WPENG 2013-10-18
  • 打赏
  • 举报
回复
会java学习c#就会很快了
加载更多回复(2)

110,533

社区成员

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

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

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