c#是一种玩具语言

为什么这么说,

举个简单的例子,提问:对数组[1,2,3]求和有几种方法?

我能说出来的,四种。说出来,不是上网查出来。

for,foreach,sum,while。

for好像大家都不提倡,foreach举例的时候用到比较多,sum是牛逼哄哄的各路”老师“推荐最多的用法,为什么说”老师"要加引号,因为到现在为止没见到谁用sum的时候考虑集合为空的情况,而集合为空的时候sum会抛异常。

foreach呢,枚举,牛逼吧。。。现在我加一个条件,第二个数如果等于1要求退出循环,foreach怎么办?正确的写法是,先int 一个Index ,在循环体外面,循环体里递增,index==2的时候判断。定义在循环体外面! 我还能说什么?本身就没带来多少可读性的语法糖,简直是bug一样的存在。

foreach和yield联用能提供一种伪enumable,使非集合的变量提供一种伪集合的效果。等等,等等。这好像是框架应该做的事情吧,不是语言应该做的吧?这是任何需要的场合程序员都能自己做出来的效果吧?我定义个伪集合类和for联用不能达到这个效果吗?

好的,不重复发明轮子,好的。c#和基础类库加起来其实就是个开发框架,好的。

厉害,语言和框架本身是一体的。

那么请你把for移除出去,sum也移除出去吧。同样的逻辑,四种不同的写法,各自有各自的优缺点,这样还不算是重复发明轮子吗?能不能集中力量把foreach完善好,加一个类似于获取当前index的功能,或者把sum完善好,让它增加一个默认值。 现在维护的时候要同时记四套方案各自优缺点,何必呢?其实foreach sum提供的优化,跟真正的应用框架完全不能相比,企业级的应用在做框架的时候,肯定还得写自己的一大堆方法,就好比说我是鲁迅笔下的小伙计,我希望茴香豆的茴字,当然是只有一种写法最好最好,记账本来就是体力活,为什么还要在字体写法上增加复杂度,你奶奶的,会四种写法对除了孔乙己外其他人都么用。

类库是有不少,java也有啊?那种成功的语言没有类库?只要开发一次就有了,这些微软是做了,他不做,也一定会有人做。然后呢,网络请求多少种写法,webrequest,webclient,httpclient?其实变成字节流以后原理都差不多好不好?我现在要记你那么多方法才能维护好代码,我还不如直接放弃这种语言,找一种简单的语言,然后把原理搞清楚,有类库用类库,没有类库就自己写,对于资深程序而言那样更有积累性好不好?

从c#数组求和说起的更多相关文章

  1. js数组求和

    array1.reduce(callbackfn[, initialValue]) callback : 函数执行在数组中每个值 initialValue : 对象作为第一个参数回调的第一次调用使用 ...

  2. 《Intel汇编第5版》 数组求和

    一.LOOP指令 二.间接寻址 三.汇编数组求和 INCLUDE Irvine32.inc includelib Irvine32.lib includelib kernel32.lib includ ...

  3. Javascript数组求和的方法总结 以及由斐波那契数列得到的启发

    一次面试中,面试官要求用三种不同的Javascript方法进行一个数字数组的求和,当时思来想去只想到了使用循环这一种笨方法,因此面试比较失败,在这里总结了六种Javascript进行数组求和的方法,以 ...

  4. [java大数据面试] 2018年4月百度面试经过+三面算法题:给定一个数组,求和为定值的所有组合.

    给定一个数组,求和为定值的所有组合, 这道算法题在leetcode应该算是中等偏下难度, 对三到五年工作经验主要做业务开发的同学来说, 一般较难的也就是这种程度了. 简述经过: 不算hr面,总计四面, ...

  5. 个人项目-数组求和(语言:C++)

    prog1详细要求: [第一版本程序Prog1要求:] + 给定一个数组,实现数组元素求和:,具体要求:实现对一维数组(a[100])的所有元素相加运算. + 数据准备:a)数组长度:100:b)数组 ...

  6. 【原】C++11并行计算 — 数组求和

    本文转载请注明出处 -- polobymulberry-博客园 0x00 - 前言 最近想优化ORB-SLAM2,准备使用并行计算来提高其中ORB特征提取的速度.之前对并行计算方面一窍不通.借此机会, ...

  7. js 数组求和,多种方法,并比较性能

    可以借用下面12种方法对数组求和,创建一个长度为10w的数组,进行测试 every()       检测数值元素的每个元素是否都符合条件. filter()      检测数值元素,并返回符合条件所有 ...

  8. reduce实现数组求和

    对于实现数组求和,我们常用的思路是通过for.while,对数组进行迭代,依次将他们的值加起来,下面列举常用的两种方法 第一种: var arr = [1,2,3,4,5,6]; Array.prot ...

  9. Java并发和多线程2:3种方式实现数组求和

    本篇演示3个数组求和的例子. 例子1:单线程例子2:多线程,同步求和(如果没有计算完成,会阻塞)例子3:多线程,异步求和(先累加已经完成的计算结果) 例子1-代码 package cn.fansuni ...

  10. Java实现不遍历数组求和

    package com.jts.t1; /** * 不遍历数组求和 * 方法省略异常检查 */ public class Demo1 { public static void main(String[ ...

随机推荐

  1. apache-service的使用

    apache service目录设置 设置Apache HTTP Server的文件根目录(DocumentRoot) 安装Apache 时,系统会给定一个缺省的文件根目录 如果你觉得这个网页存在这个 ...

  2. golang模拟动态高优先权优先调度算法

    实验二  动态高优先权优先调度 实验内容 模拟实现动态高优先权优先(若数值越大优先权越高,每运行一个时间单位优先权-n,若数值越小优先权越高,没运行一个时间单位优先权+n),具体如下: 设置进程体:进 ...

  3. Webserivce简单安全验证

    最近新接了一个需要调用第三方WebService的项目,看到这个第三方WebService被调用的时候,需要授权用户名和密码,于是自己也想对WebService的安全授权这个方面进行了一下研究,以前调 ...

  4. POJ 2242 The Circumference of the Circle

    做题回顾:用到海伦公式,还有注意数据类型,最好统一 p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c));//三角形面积,海伦公式 r=a*b*c/(4*s);//这是外接 ...

  5. http指定状态码

    Http状态代码 1.指定状态码: setStatus HttpServletResponse的setStatus方法.如果响应的状态代码比较特殊,并且伴有相关的文档内容,那么一定要在用PrintWr ...

  6. mongodb添加延时节点

    1.      简介 延时节点是主节点过去某个时间点的“数据快照”,通常用来做数据备份,如果主节点有误操作而删除了数据,可以通过延时节点来恢复数据.例如,当前时间是10:00,并且延时节点设置1个小时 ...

  7. Individual work 总结

    不得不说,这是我上大学以来所花时间最长.收获最多的个人项目之一.在此之前,虽然也上过面向对象等课程,课程对编程代码量的要求并不比这个小,但是由于从没有如这次这般,完全靠自己学习新的编程语言并进行编程实 ...

  8. 20165210 Java第六周学习总结

    20165210 Java第六周学习总结 教材学习内容 第八章学习总结 String类: 构造String对象: 1. 常量对象 2. String对象 3. 引用String常量 字符串的并置: S ...

  9. 大数开根号java模板

    利用逼近的思路直接二分开方找出值 package lanqiao; import java.math.BigInteger; import java.util.Scanner; public clas ...

  10. magento建立多语言网站

    默认Magento仅仅有English语言包,所以如果想也显示中文,就要安装中文语言包. 步骤: 1. 首先,去http://www.magentocommerce.com/langs/list/下载 ...