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. 数据仓库建模与ETL的实践

    一.Data仓库的架构 Data仓库(Data Warehouse DW)是为了便于多维分析和多角度展现而将Data按特定的模式进行存储所建立起来的关系型Datcbase,它的Data基于OLTP源S ...

  2. hdu3874

    题解: 和上一题基本相同 插入的时候变一下数值 具体看http://www.cnblogs.com/xuanyiming/p/7921926.html 代码: #include<cstdio&g ...

  3. markdown实例

    Hi This is a Markdown live editor built using WMD and other open source tools. I use it to write ent ...

  4. php抓取文章内容分析

    preg_match_all — 执行一个全局正则表达式匹配 int preg_match_all ( string pattern, string subject, array matches [, ...

  5. 【DevExpress v17.2新功能预告】DevExtreme TreeList

    在即将到来的v17.2中,您可以查看到DevExtremeHTML5 TreeList小部件的这些新功能. 1. 递归选择模式 TreeList将包括一个新的递归选择模式,您只需一次点击即可选择或取消 ...

  6. NodeJS 难点(网络,文件)的 核心 stream 四: writable

    什么是可写流 白板 可写流是对数据流向设备的抽象,用来 消费  上游流过来的数据 通过可写流程序可以把数据写入设备, 常见的是 本地磁盘文件或者 TCP.HTTP 等网络响应. 看一个之前用过的例子 ...

  7. UI基础:target...action设计模式,手势识别器.UIimageview

    使用target..action和delegate设计模式可以实现解耦.使代码更加优化. 手势识别器: 手势识别器:是对触摸事件做了封装,无需自己去判断某个手势是否触发,手势识别器本身起到了识别作用, ...

  8. JavaScript学习(二)——深入学习js对象的原型与继承

    了解对象  什么是对象?   …… 这个就不说了 对象的声明的两种方式 var person = new Object(); person.name="linchen"; pers ...

  9. tensorflow读取训练数据方法

    1. 预加载数据 Preloaded data # coding: utf-8 import tensorflow as tf # 设计Graph x1 = tf.constant([2, 3, 4] ...

  10. CodeForces - 645F:Cowslip Collections (组合数&&欧拉函数)

    In an attempt to make peace with the Mischievious Mess Makers, Bessie and Farmer John are planning t ...