虽说发自内心的不怎么喜欢C#,但是C#有很多特性真的比Java好,用起来方便多了,而且近几年来,C#的确是抢占了Java越来越多的市场啊,照这种趋势发展下去,再过5年,Java不会真的被淘汰了吧?随便举几个例子:
1. C#里DateTime别提多好用了,Java里的Calendar相比起来就垃圾多了,最后还得去用apache的DateUtils来弥补
2. C#的struct简化了很多操作,Java里还要装箱拆箱
3. C#的ADO.NET,Java里有可以类比的好东西么?
4. C#的as关键字,Java里有对应的好东西么?
5. C#的LINQ,lambda expression,Java里有这么好的东西么?总结起来就是:Java有的好东西C#都有,C#有的很多好东西,Java一个都没有!新手在此迷茫的请教各位Java前辈,10年内到底Java会不会被C#取代而没落??

解决方案 »

  1.   

    你喜欢用什么就用什么,不想别人拿大话压你,你就没必要提问了。我相信没人能说那种语言好,java若不好,能生存那么久吗?任何东西都不可能完美。人也一样,哪有十全十美的人,人且如此,编程语言又能怎么样?毕竟还是人开发出来的。你还是老老实实的敲代码去吧。
      

  2.   

    十年前就开始说java已死,至今java已死的传言一直存在,有啥好说的就像我看衰WP,各位呢
      

  3.   


    Java能生存那么久是因为碰到了2次千载难逢的机遇,一次是网络普及,一次是安卓,并不是Java本身怎么好
      

  4.   

    爱用不用,没人强迫你用啊,java的生存问题,不是我关心的问题。
      

  5.   

    本身不好怎么能抓的住机遇呢?网络普及难道不是因为J2EE的性能好?安卓难道不是因为J2ME的贡献?
    不容置疑的是EE做B\S是相当了得的,让一大批ME的开发人员转安卓也是可以接受的;当然我不否认Objective-C现在份额越来越大,但关C#鸟事呀!这是跨平台性带来的优势,跨平台就是JAVA的初衷。
    再说一下开源,因为开源,所以才有那么多优秀的第三方库,虽然SUN挂了,但是JAVA不会挂。虽然有很多第三方库配置起来很麻烦,难道你是 chi shi的吗?作为一个程序员不会配置还写个鸟程序呀?什么东西都IDE配好了,你以为用PhotoShop p图呀?
    跨平台、开源?C#能比吗?我对C#不是很了解,就算能比也不会转~
    这种帖子我一般不想回的,楼主们就是一纯托+喷子,我也不想骂人,但是很鄙视楼主这种看起来是挺其实是贬JAVA的行为~轻微C#给你了什么好处?
      

  6.   

    这孩子太杞人忧天了,跨平台和开源,C#能比?
    你先把跨平台和开源这两样弄清楚再说吧。java会不会被淘汰,在你的的职业生涯中,不需要考虑这个问题。
      

  7.   


    这话实在是为了证明你的观点瞎编硬造
    C#确实拥有一些java不具备的特性和优点,这毋庸置疑,在表扬一个新生事物的同时,没必要去贬低以存在的弱点,毋庸置疑C#总结了很多语言的优缺点进行了重新设计,但谁都知道他抄袭了多少
    老拿别人的缺点比自己的优点你永远就只有那些优点,
    你口口声声来请教,在心里却已经做了判断,既然已经做了决定就按照自己想的去做就是了,又何必在这里寻求心理的安慰,更何况在java版你得不到安慰,这个帖子应该去C#版发,而且你举的那五点,大多数和语言特性有半毛钱关系??衡量一个语言是否优秀,那个datetime的库来判断?可笑
      

  8.   

    能不能不撤这些没用的,java和c#的好坏是我们这些小菜鸟来定位的吗?每种语言都有他的优势和不足。万事万物皆如此
      

  9.   


    你这是哪年的数据了???python比C#多???现在随便打开一个网站,有几个不是asp.net做的?如果连一个小小的DateTime库都做不好,还谈什么?正所谓一屋不扫,何以扫天下???
      

  10.   

    楼主你心里既然已经有了主意就按自己的想法去做就是,何必持着一方的观点跑到另一方地头上找骂。就算是真的Java将死,你也不可能一统论坛里的意见,纯粹给自己添堵。况且,一门语言活得好不好,和每个使用这门语言的个体程序员活得好不好,真的一点关系都没有。
      

  11.   

    C# 实现起来麻烦.....代码复杂  个人还是支持java的
      

  12.   


    一门语言活得好不好 和 使用这门语言的个体程序员活得好不好 之间的相关系数(correlation)为0.999好不好! 
      

  13.   

    C#跟java没有可比性,绝大多数企业级的服务器都是unix和linux,C#目前还只能在.NET上跑
      

  14.   


    好吧,上面那个2011年的,这个是2012年九月的,你自己欣赏吧一个库做没做好是衡量一个语言优良的标准??既然apache 的DateUtils能让你满意,就是说java能做到,
    你觉得你这个观点站得住脚?更何况Calendar哥用的挺顺手的,没觉得比什么DateTime差这真的可笑,你都开的什么网站??还就是几张网页??先开拓开拓你的视野,再来bb
      

  15.   

    怕你不知道TIOBE,wikipedia总知道吧,这是TIOBE的简介
      

  16.   

    java速度快,这个c sharp没有
      

  17.   

    嗯,京东是用。net的,不过因为抢购时太卡了,要像淘宝学习用java了
      

  18.   

    未来的事谁也说不清楚。目前的事实是:Java仍有大量的拥护者,.Net想短时间内蚕食掉这么多的用户似乎不太现实。
    其实最近对Java前景不看好的帖子多起来的原因并不是针对Java自身的,而是Oracle的一些做法确实让人很失望。另外,下面的内容可能有人会喷。在下这里只强调一下,本人只是站在中立的立场描述事实而已。关于跨平台和开源。
    MS并没有在其它平台上做.Net,但这不表示没人做。Unix/Linux上的Mono存在其实已经不是一年两年的事了,还有人不断的说.Net只能在Windows上运行……就算是反对使用C#的,知己知彼也是要做到的吧。
    对于开源,.Net虽然没有公布源代码,但可以通过反编译工具查到类库的IL(相当于Java的字节码)。别人怎么看在下不清楚,至少在下觉得看Java源代码和字节码没什么区别的吧。
      

  19.   

    Java的集合类比C#写得好。Java的泛型是类型擦除的,比C#更灵活更好用。Java的泛型+反射+Annotation威力强大,轻松实现aop编程,C#没有。Java的枚举类比C#强很多。Java的instanceof关键词很好用,C#没有。Java的反射类库比C#好用。Java的DataFormat比C#的好用。Java对开源数据库的支持更好,对Oracle的支持也更好。还有很多现在这2个语言差异越来越大,向着不同方向发展,C#以易用性为目的,容易限制程序员的自由发挥。微软喜欢推倒重来,说不定到了某个版本,它会把C#的某些特性删除造成不兼容,或者发明一种更好用的语言,把C#晾在一边不理它了。C#是微软的,所以windows 图形界面编程得到一定强化,但是好点的界面还是靠C++,C#是个摆设。目前Java与Oracle公司关系密切,数据库编程的能力将会变得更牛,还有分布式系统的开发会更牛。Oracle目前推出了Swing的升级版JavaFx融入JDK,做出的界面很漂亮,比Flex更漂亮更易开发,开发桌面程序很合适,可以代替VC++开发的界面,比VC++容易多了。
      

  20.   

    谁压你了像你这样,什么叫有潜力,你连java的优势都用不出来,就先想到java 的弱势,真可悲。
      

  21.   

    j王曰:“java是种资源,你可以利用他做很多东西,c#是种商品的附属品,没有档次的东西,逃出了微软你什么都不是.”
      

  22.   

    1、C#能跨平台吗?
    2、C#开源码?Windows系统开源吗?
    3、还有像J王说的,C#喜欢推到重来,比如:F#,银光其实已经被微软放弃了。
    我感觉C#封装的太好太强大反而失去了灵活性,要问我喜欢Java的理由,Eclipse开发环境,语法?还有很多,反正我喜欢Java,当然我对C#也不反感。未来10年的事大家都不好讲,科学技术飞速发展,学习哪一门语言的真正权利掌握在科学家手里,说不定几年后量子计算机出来了,一切都得重头开始。对于程序员来说,计算机语言知识一种工具,要灵活取舍。看了那么多大哥的评论,你觉得再讨论孰高孰轻的问题,有意义吗?
      

  23.   

    这些东西提出来就说明了,你还停留在初级阶段啊
    哪有人拿类库来比两个语言优劣的
    或者这么说,即使是你说的这几个也无非就是一种坐井观天的青蛙式想法
    datatime比calendar好用吗?java对于时间的支持又何止一个calendar?对于date的包装timestamp,sql.date,long等等,或者说只是你自己觉得那玩意儿好用罢了
    struct难道不破坏面向对象完整性吗?何况,用一个类来实现struct有什么区别吗?
    ado.net和java比数据库技术?你想要笑死大牙米?或者说你只用过jdbc?jdbc不好用?spring的jdbc包装怎么样?还不够?mybatis怎么样?再不够?hibernate够了不?
    关键字...我服了...这都能拿来比...C#有instanceof关键字吗?这也能拿来比一下
    LINQ,lambda expression是很好,但是又怎么样那?说穿了也就是种变种的脚本,你怎么就知道java没有这种东西了,哪个人能站出来说他知道java所有的扩展库? 题外话,要说扩展到话javaCC用过吗,C#能自己做编译器吗
    多喷就该变成愤青了...这话我也听了10年了吧,貌似至今为止java活得还是好好的,当年叫的最凶的几个人连脸都看不到鸟,希望10年后LZ能拍着胸脯说,java已死
      

  24.   

    话说明年jdk8就出来了,前瞻一下jdk8的优点吧,不要总是讨论老版本。List<String>list={"这","写法","如何?"};
    还有Java的动态语言等....
      

  25.   

    学好了java,到了巅峰估计,赚C#不难
      

  26.   


    怎么总有Java的人宣称C#里没有instanceof?C#的is比java的instanceof简便多了!相反,C#的as,java里有么?
      

  27.   

    我能笑吗,不知你所谓的趋势是什么?
    就是WINDOWS上GUI那一小块吗?
    这么说吧,C#能在LINUX用吗? 你见过有企业应用用C#吗? 你见过有支撑系统用C#吗? 你见过通信行业用C#吗?
    C#开源吗?C#有多少开源类库选择?C#离了WINDOWS还能干嘛?
      

  28.   

    “C#离了Windows还能干嘛?”在下上面说过了吧,Mono公布已经有几年了,还说这话不会被人笑话么?在下对语言之争一向都是中立的,“各有所长、各有各的优势领域”是在下一贯的看法。
    虽然WORA是Java宣传口号,但并不表示这一特点是Java独占的。Mono解决了.Net不跨平台的问题是不争的事实(虽然MS官方可能并不认为这是个问题)。还有“Java比C#快”?在下真心不这么认为。不管在Windows下是Linux下,对同一规模的算法运算.Net都比Java效率高,不少人说.Net效率优化比Java好并不是空穴来风。不过话说回来,从SUN开始Java的开发者就从没拿Java的效率来说事。也就是说Java的开发者都没把运行效率当作Java的优势来考虑,所以总拿不是Java优点的地方来和别的语言比不碰壁才怪。其实在下也明白上面的各位想表达的真实意思:“JSP服务器比ASP.Net服务器运行效率好”。没错,这是事实。IIS说白了只是款测试用服务器,对于其它的ASP.Net服务器,恕在下孤陋寡闻,只知道Apache,但它比Tomcat等JSP服务器起步要晚得多。总结起来:Java与.Net相比的优势并不是效率高,而是有着丰富的经验。这也是开源带来的好处吧。
      

  29.   

    "在下"同学mono你用过么?敢用么?现在已经说了System.Management将永久不会被支持,更何况win8之后,支持mono是辛苦的,ms新出些东西,会考虑你mono的感受么?但是你mono得一直跟着走,要不然就不叫implement了
    这个我没做过测试,不敢说什么,你能拿出有力的证据证明你说的么?谁这么说了,我咋没看到,但我只是觉得,如果那C#写个web,然后为了转到linux下,需要安个mod_mono,寄存在apache底下,这不是找虐么?ms或者Novell哪天搞个iis Linux在比较吧。ps:纠正一点,说apache比JSP服务器起步晚得多,这属于瞎扯。而且两者没有可比性,一个是专业的http服务器,一个是java web的容器,两者在处理静态资源的效率上是没法比的
      

  30.   

    java不行了,楼主好自为之吧。
      

  31.   

    各位应该说点Java、C#的优缺点···
      

  32.   

    怎么说呢,单从语言特性上来说,如今的 Java 比 C# 还差很多,这是毋庸置疑的。想转就转吧,做 Java 的人已经不少了,如果走掉一批会好很多。
      

  33.   

    http://shootout.alioth.debian.org/u32/bench.php?test=all&amp;lang=csharp&amp;lang2=java
    从隔壁抄来的地址,从这些数据看,貌似C#Mono速度真的不如java,而且这个比空口说白话更有说服力。
      

  34.   

    转就转呗,反正做java的那么多,少几个更好
      

  35.   

    首先,在下无意为Mono做广告,甚至在下本身并不看好Mono。MS什么侍候一时兴起把Mono赶上绝路的可能性是很大的,别忘了商场如战场,战场上什么公告、声明都是一张废纸。在下想说明的只有一件事:不能因为性能或前景而否定Mono的存在。只要它是存在的,“C#离了Windows什么也干不了”这句话就站不住脚了。C#比Java运行效率高这个是真实的,列个测试吧:
    测试算法:列选主元高斯消去
    测试规模:千元线性方程组(有解)
    测试环境:
    CPU:主频3.10G(4X)
    .Net framework: v4.0
    JDK: 1.7
    测试结果:
    VC:230-250ms
    C#:370-390ms
    Java:740-750ms(直接用jdk测的结果,通过Eclipse调用为820-840ms,可能是IDE运行也要占点资源吧,PS:Eclipse版本3.8M1)
    Mono:由于在下的Linux是跑在虚拟机下的,测得不准。谁装的Linux是跑在实机上的可以帮忙测下。
      

  36.   

    C#是啥?MS为什么要做C#?为了广大程序员可以用一个高性能的语言为其他平台写程序?他为的是windows平台,它的诞生就是为了windows,就是为了给windows招揽更多的开发者,为了维持windows平台,更进一步说,.net为了谁?为了其他平台?谁否认.net是个windows框架?,既然.net为windows而生,C#为了.net而生,那C#离开windows能干什么?就因为有个mono万事大吉了?关于你那个测试我不好说什么如果感兴趣
    http://shootout.alioth.debian.org/这是ubuntu系统上各个语言性能的一些测试,包括java1.7和C# Monohttp://shootout.alioth.debian.org/demo/measurements.php?lang=csc
    http://shootout.alioth.debian.org/demo/measurements.php?lang=java
    这两个是vista下C#和java 1.7的一些测试,我不知道你怎么测试的C# mono比java 1.7快那么多,至少这些测试里,mono性能没法跟java 1.7 比,但在windows平台c#和java 1.7 伯仲之间
      

  37.   

    现在学Java的人已经很多了  有疑惑的都转别的语言吧!!  
      

  38.   

    从MS的商业利益角度出发,当然不会希望C#应用于其它OS。但Mono不是MS开发的,就算不向MS的期望发展也很正常。我们都学过历史唯物主义,不管Mono存在感再怎么薄弱,也改变不了它存在过的事实。“C#离开Windows能做什么?”做个简单的窗口程序做不了么?在XSP上做个网站做不了么?为C/C++的程序做个UI做不了么……也许阁下要说“有哪个大公司用Mono做开发的”,在下只能提醒你:我们讨论的是能不能,而不是能做到什么程度。如果这都没注意到,那只能说阁下没明白在下上面说的什么,我们讨论的根本不是一样东西。至于上面测试的问题,不知阁下怎么看的。在下给出的单位是ms,实际也就差个0.3s。和阁下给出那些测试的时间差不是差不多嘛。至于http://shootout.alioth.debian.org/上面的测试项目,不知阁下看了源代码没有。部分测试还可以说得过去,但大部分代码都说明不了问题嘛:先不说代码的对应程度,有几个测试甚至解题思路都完全不同,仅停留在“解决相同问题且算法复杂度相当”的程度上,用这种测试来比较两个运行环境是不是太草率了点?PS:那个WFS的测试还是能说明点问题的,在下也想不通为什么C#在深度超过15后效率会暴跌……
      

  39.   

    呵呵,你是抓住人家说了一句“C#离开Windows能做什么?”,因为mono C#在其他平台可以写程序,这个谁都知道,如果争论这个,我费什么劲?恐怕你拿出mono也就是想教育一下那些不知道mono的人?但这一点上没有任何争论的意义,他是存在啊,没错,然后呢,我给你说的是它的存在没有意义,我在说什么,这个傻子也能看得出来,但你还是一直纠结在不知道几楼说的一句“C#离开Windows能做什么?”,那我也来钻个牛角尖,
    人能在火坑里活么?按照你的逻辑,能,至少也得能活一分钟吧,在火坑里人还能哭,还能叫,谁说人在火坑里什么都干不了?那好,来,我们跳火坑吧这是在掩耳盗铃么, 你的测试里结果是java最慢,比C#慢了100% 这些测试里面,他们是差不多的,这是测试结果本质上的不同
    没有,我确实没有一个一个看代码,这是事实,但是,对于语言效率的比较只是在相同语法下单纯的时间长短比较?难道不应该,为了解决同一个问题发挥各自语言设计上的优势?这种比较你认为草率?而你的测试就一个算法就跑一次,就因为和人家测试的结果不同就严谨?再来如果你觉得他们写的C#代码为去了C#尽可以拿出你的解法
      

  40.   

    C#目前来说只适合做windows下的客户段开发而把C#用于web开发的Asp.net缺点非常多:语法规范 VB.net、 C#都能用于ASP.net开发。IIS的性能问题,ASP.net只能作为一个扩展服务在IIS中运行,IIS管理托管代码,而不是虚拟机直接管理。C#虽然提供了简化的语法,但是ASP的语法并没有JSP简洁,特别是最新的JSP规范又有所简化。太依赖windows。总之ASP.net比起Java EE、PHP、RoR等没有可比性。
      

  41.   

    现在C#在UI开发上的优势也在减弱。可以代替它的东西也有很多:JavaFx,QT,Delphi.主要是各大公司正在争夺HTML5的主导权,一旦HTML5成熟,微软也不得不倒向HTML5。将来HTML5也可以用来做客户端开发,C#的地位尴尬。
      

  42.   

    至于java会不会淘汰,这谁也说不好,没什么是固定不变的,以后总有可能出现更nb的语言,一代换一代,但是我觉得现在还不用考虑那么多吧,至少更牛逼的语言出现前我们的程序员生涯已经结束了
      

  43.   

    您先打听打听一个windows服务器版多少钱再讨论这个问题吧。
      

  44.   

    京东服务器Apache 6.0.3.5 其他的我就不多说了
      

  45.   

    租用一个月的windows版服务器只比Linux服务器多5美金。
      

  46.   

    说说.net与java的线程池吧
    需求都是一样的,都是一系列任务tasks使用固定的线程池去执行。
    看看有什么不一样。说先说说c#下的线程池操作
    // 这边要说一下 c# 必须要需要设置 doneEvent,来通知是否完成任务。
    // 而且必须在任务执行完毕后finally执行通知
    public abstract class AbstractTask
    {
            /// <summary>
            /// taskCallBack
            /// </summary>
            /// <param name="parameter"></param>
            public void taskCallBack(Object parameter)
            {
                this.TaskResult = doTask();
            }        /// <summary>
            /// done Event handler
            /// </summary>
            private ManualResetEvent doneEvent;
            public ManualResetEvent DoneEvent
            {
                get { return doneEvent; }
                set { doneEvent = value; }
            }
    }
    public class ThreadPoolManager
    {
            /// <summary>
            /// 这边设置线程池的大小
            /// </summary>
            private int poolSize;
            private ThreadPoolManager(int poolSize)
            {
                this.poolSize = poolSize;
                System.Threading.ThreadPool.SetMaxThreads(this.poolSize, this.poolSize);
            }        /// <summary>
            /// 执行 IList<TaskParameter>
            /// </summary>
            /// <param name="taskParameters">task list</param>
            /// <param name="methods">Delegate array</param>
            /// <returns></returns>
            private const int NUM_WAIT_HANDLES = 64; // the number of wait handles
            public List<AbstractTask> startTask(IList<TaskParameter> taskParameters)
            {
                int taskSize = taskParameters.Count;
                List<AbstractTask> tasks = new List<AbstractTask>();
                if (taskSize == 0)
                {
                    return tasks;
                }            Queue<ManualResetEvent> events = new Queue<ManualResetEvent>(taskSize);
                foreach (TaskParameter eachPara in taskParameters)
                {
                    AbstractTask task = TaskManger.getTaskInstance(eachPara);
                    ManualResetEvent manualResetEvent = new ManualResetEvent(false);
                    events.Enqueue(manualResetEvent);
                    task.DoneEvent = manualResetEvent;
                    tasks.Add(task);
                }            // task.taskCallBack 执行真正的任务
        // c# 需要将任务一个一个的加入到tasks池中
                foreach (AbstractTask task in tasks)
                {
                    System.Threading.ThreadPool.QueueUserWorkItem(task.taskCallBack, null);
                }            // 这边还有一个问题就是 等待任务的数量不能超过64,你说郁闷吗?
        // 那只能批量64个任务 等待了。
                // Wait for completion
                // Due to limitations on WaitAll, must be "chunked" in sets of 64 or fewer wait handles
                List<WaitHandle> handles = new List<WaitHandle>(NUM_WAIT_HANDLES);
                // calculate the number of times that we need to wait
                int loops = ((taskParameters.Count - 1) / NUM_WAIT_HANDLES) + 1;
                //chuncking the waiting
                for (int currentLoop = 0; currentLoop < loops; currentLoop++)
                {
                    for (int handleCount = 0; handleCount < NUM_WAIT_HANDLES; handleCount++)
                    {
                        if (events.Count == 0)
                        {
                            break;
                        }
                        handles.Add(events.Dequeue());
                    }
                    WaitAll(handles.ToArray());
                    handles.Clear();
                }
                return tasks;
            }        /// <summary>
            /// Wait All done Event
            /// </summary>
            /// <param name="doneEvents"></param>
            private void WaitAll(WaitHandle[] doneEvents)
            {            // WaitAll for multiple handles on an STA thread is not supported.
                // so wait on each handle individually.
                if (Thread.CurrentThread.GetApartmentState() == ApartmentState.STA)
                {
                    // using foreach,wait for each Thread
                    foreach (WaitHandle myWaitHandle in doneEvents)
                    {
                        WaitHandle.WaitAny(new WaitHandle[] { myWaitHandle });
                    }
                }
                else
                {
                    WaitHandle.WaitAll(doneEvents);
                }        }下面在说说可爱的java,很简单,因为都已经封装好了。public final class MutipThread {
        public static void main(String[] args) {        List<Task> tasks = new ArrayList<Task>(task_num);
    for (int index = 0; index < task_num; index++) {
        tasks.add(new Task(....));
    }        ExecutorService threadPoolService = null;
            try {
                    threadPoolService = Executors.newFixedThreadPool(thread_num);
                    List<Future<Object>> futures = threadPoolService.invokeAll(downloadTasks);
                    for (Future<Object> future : futures) {
                        System.out.println(future.get());
                    }
            } finally {
                if (threadPoolService != null) {
                    threadPoolService.shutdown();
                }        }
        }    static class Task implements Callable<Object> {
            public Object call() throws Exception {
                // do something
    }
        }
    }
    以上的总结是我做项目的时候分别碰到的,很明显java的对线程池处理部分明显要比.net要简洁很多。
      

  47.   

    java也不行,以后都是苹果机了 哈哈。
      

  48.   

    还有就是java 的枚举。
    java enum的好处就是定义枚举单位的属性。比如说一下代码
    public class EnumTest {
        public static void main(String[] args) {
            for (EnumWithAttribute enumItem :EnumWithAttribute.values()) {
                System.out.println(String.format("Enum name:%s, attribute1:%s, attribute2:%s, attribute3:%s   ",
                        enumItem.name(), 
                        enumItem.getAttribute1(), 
                        enumItem.getAttribute2(),
                        enumItem.getAttribute3()  ));
            }
        }    static enum EnumWithAttribute {
            EnumUnit1("detail1", 1, 1L),
            EnumUnit2("detail2", 2, 2L),
            EnumUnit3("detail3", 3, 3L), 
            EnumUnit4("detail4", 4, 4L), 
            EnumUnit5("detail5", 5, 5L),
            EnumUnit6("detail6", 6, 6L);        private String attribute1;        public String getAttribute1() {
                return this.attribute1;
            }        private int attribute2;        public int getAttribute2() {
                return this.attribute2;
            }        private long attribute3;        public long getAttribute3() {
                return this.attribute3;
            }        EnumWithAttribute(String attribute1, int attribute2, long attribute3) {
                this.attribute1 = attribute1;
                this.attribute2 = attribute2;
                this.attribute3 = attribute3;
            }
        }
    }.net 可以吗?有人说可以 还给了代码。先看代码。public enum EnumWithAttribute
        {
            [EnumUnit("detail1", 1, 1L)]
            EnumUnit1,
            [EnumUnit("detail2", 2, 2L)]
            EnumUnit2,
            [EnumUnit("detail3", 3, 3L)]
            EnumUnit3,
            [EnumUnit("detail4", 4, 4L)]
            EnumUnit4,
            [EnumUnit("detail5", 5, 5L)]
            EnumUnit5,
            [EnumUnit("detail6", 6, 6L)]
            EnumUnit6
        }
        [AttributeUsageAttribute(AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
        public class EnumUnitAttribute : Attribute
        {
            public String attribute1;
            public int attribute2;
            public long attribute3;        public EnumUnitAttribute(String attribute1, int attribute2, long attribute3)
            {
                this.attribute1 = attribute1;
                this.attribute2 = attribute2;
                this.attribute3 = attribute3;
            }
        }但是如果想得到其中一个EnumUnit4的attribute1的结果【detail4】,该怎么写?
    恐怕就没那么方便了吧。好像还要强制转化吧!! 简直太繁琐了。所有劝楼主还是先精通一门吧,多积累项目经验。如果还是比来比去,最后一事无成!!
      

  49.   

    没必要纠结谁会被淘汰,历史的痕迹会证明,学好java、c#都能站住脚
      

  50.   

    又是一个变相的java与xxx的灌水帖,从你的言语没看出一点请教的成分,你的目的只是引来人们互喷,说实话你也不用学什么c#,java...还是学好怎样去问问题吧,如果要是想学java的话,你该问问java在什么领域有什么优势,有什么特长,再结合你自身的特点去选择,可你呢,打着菜鸟新手的旗号,说这不好那不好,硬把自己搞的五脊六兽跟个小白似的有意思。人家说java跨平台,你还轻蔑人家小白,你可知道跨平台的意义是什么。
    java在服务端,网络,web,搜索等都有很多优秀的框架,技术,近年来吵的很火的hadoop,hbase等都是基于java平台技术的,你还说java会在5年之后淘汰,那人家这些搞开源的“累死累活”的更新版本就是为了淘汰啊,不知道人家是2BT还是你是2BT。
    还有些大神,你让我膜拜啊,你搞基java,c#测试啊什么的,你懂测试?你懂jvm?你用的是标准虚拟机吧,你知道jdk跟jrocket是怎么回事?摆脱不要小白好不?大家最好对这样的帖子犹如粪土,视而不见。注册了号这么长时间,就回复了两三次,就看见你们喷了,实在受不鸟了,但也欢迎LZ其他人再来喷我吧。
     
      

  51.   


    如果你只能调调API,那么JAVA的生与死对你而言毫无关系