微软开发C#的这帮人,尼玛到底还知不知道有一种数据类型叫做无符号整型?
微软开发C#的这帮人,尼玛到底还知不知道有一种数据类型叫做无符号整型?妮们当然知道的撒
不然C#里怎么会有uint怎么会有Uint16怎么会有Uint32
但你们一个new Bitmap,width和height居然尼玛用int~你们哪辈子见过width与height是负数的?难不成尼玛把标量当矢量用?技术创新?肏尼玛一天到晚就发编码规范,到最后尼玛自己不遵守规范。
尼玛Interlocked.Exchange 有 (ref int, int) 居然就木有 (ref uint, uint)?难道一个uint还要老子去加一个object lockuint ?? --------------------编程问答-------------------- --------------------编程问答-------------------- .NET 类库被设计为跨语言兼容的。 --------------------编程问答--------------------
难道CLS是残缺语言?连uint都木有,想和脚本语言比谁更简介比谁更易做图比谁更非主流? --------------------编程问答--------------------
(1) CLS 不是语言,是语言规范。尽可能少的规定元素类型,意味着可以设计更灵活的语言。
(2) 你不能因为人民币只有1元、5元、10元、20元、50元、100元面额,没有30元或者8元而觉得人民币易做图。 --------------------编程问答-------------------- 另外我觉得 bitmap 使用负值表示翻转或者镜像图像也未尝不可。 --------------------编程问答-------------------- 应该是语言来规范开发人员?还是应该开发人员来规范自己?
如果你明知道width与height无负数,还不规范自己,那就是自己有问题了.
----------------------------------------------------------
PS:别说C#开发者了,你还是先规范一下你自己的语言吧. --------------------编程问答--------------------
(1).数据类型越少就越灵活?那么只保留一个双精度的double而把其他基元数字数据类型都扔掉,那岂不是更灵活?
(2).大哥,别偷换概念行不?偶说滴是C#里本来有的uint,而缺少相应的原子操作API。与人民币有没有30元或8元,没有本质上的联系,就算打比方也没有可比性。 --------------------编程问答--------------------
那既然这么说,我建议new Bitmap的width和height全部改为string。
如果string是一个正数,就当int来处理
如果是负数,就按你说的去做
如果string=="QQ",new 出来的Bitmap就是一个肥企鹅的图像
如果string=="微软老总",那么new 出来的Bitmap可以是比尔盖茨的照片啊..
如果string=="某些敏感事件",那么new出来的Bitmap就是两个字:“河蟹”
这样子是不是更爽更易做图更智能更强大更湿更和谐啊? --------------------编程问答--------------------
我问你,神马是规范?是不是语言开发者设计出来的易做图非主流的规定,也算是规范?那她们为毛要更新为毛要打补丁为毛要发布新版本? --------------------编程问答-------------------- 纠缠在width、height使用int还是uint,这也不是主流非易做图的人所做的事。许多编程语言还没有无符号数呢。 --------------------编程问答-------------------- --------------------编程问答-------------------- 主流非易做图的人自己去设计一个.net framework,用十万倍的说服力来说服别人。 --------------------编程问答-------------------- 偶也知道撒。。偶写东西一项很按规范去做,最后发现原子替换居然不支持uint,偶直接怒了...幸亏可以整个解决方案进行替换,但是还得把替换的地方一个一个地去检查,以免发生负数错误或者超出范围的错误。
偶这些发帖只是想易做图下,生活中总有蛋疼的事,当事人易做图下,后来者作为经验教训。 --------------------编程问答-------------------- 这是语言啊 你可以不用,但是你又创不出来,要跟着大众走!! --------------------编程问答--------------------
大哥,你这样子说就不对了,这个是强盗逻辑~
你不能因为别人抱怨某产品不好,而去说,小样你去做这个产品出来,做不出你就没资格抱怨。不然,所有厂家都以强盗逻辑为理由,而让你用劣质产品,因为这些大多数产品,相信你一个人根本做不出来,所以,你就只能挨欺负而不能去抱怨投诉? --------------------编程问答-------------------- 那么按照你的逻辑,java没有无符号数,它是不非主流易做图?
没有办法,对待你的逻辑只有一个办法,就是实际去看看你能建设什么。因为你的批评并没有伤害人家丝毫。 --------------------编程问答--------------------
我抱怨的核心是,C#有了无符号整型,却比有符号整型少了很多本应该有的待遇。java直接就没有无符号整型,我自然就不会去抱怨java。 --------------------编程问答-------------------- .net framework 设计成跨语言的,那类型系统必然是具有通用性的,而不能设计为特殊性的类型,不然其他语言怎么去兼容呢?
C#的无符号整型 无法用在 new bitmap上,不能说明 “比有符号整型少了很多本应该有的待遇”。
可以用在很多与framework无关的地方 --------------------编程问答--------------------
那我随便给你说一个可以花精力去消磨的地方,比如说windows api中设置画笔宽度:
http://baike.baidu.com/view/1706960.html?fromTaglist
仅因为他们在宽度上使用了int,你想让微软把windows api设计团队当作“易做图的一代”而废弃了吗?那么谁又来接替他们呢? --------------------编程问答--------------------
汗....
受教了,原来从WindowsAPI就开始不按规范来做事。
正所谓上梁不正下梁歪。。 --------------------编程问答-------------------- 你的能力还不够说这个问题,原谅你的无知。 --------------------编程问答-------------------- 建议楼主去了解下BITMAP的基础知识,或者可以参考MSDN的BITMAPINFOHEADER的解释。
http://msdn.microsoft.com/en-us/library/dd183376
BITMAP为DIB数据时,顶点坐标(0,0)可以为左上或者左下,对应的DIB数据存放方式也就有不同了。
The height of the bitmap, in pixels. If biHeight is positive, the bitmap is a bottom-up DIB and its origin is the lower-left corner. If biHeight is negative, the bitmap is a top-down DIB and its origin is the upper-left corner.
If biHeight is negative, indicating a top-down DIB, biCompression must be either BI_RGB or BI_BITFIELDS. Top-down DIBs cannot be compressed.
If biCompression is BI_JPEG or BI_PNG, the biHeight member specifies the height of the decompressed JPEG or PNG image file, respectively. --------------------编程问答-------------------- 路过,又回来围观一下。 --------------------编程问答-------------------- 没有意义的啊 --------------------编程问答-------------------- 深夜顶起 --------------------编程问答-------------------- 观望中,如果不满足必要,我相信微软会有对策解决的,毕竟语言只是一种工具 --------------------编程问答-------------------- --------------------编程问答-------------------- 铁轨之间的距离是由两千年前两匹马的易做图股宽度决定的 --------------------编程问答-------------------- 你不知道Bitmap是.net framework中的类吗,你不知道.net framework不是只给C#一种语言用的吗,如果Bitmap使用了无符号类型那没有无符号类型的语言怎么用它?
知道无符号类型和有符号类型一起做运算会出问题吗,知道Java为什么要设计成只有有符号类型吗?抱怨之前先去学下基础知识吧. --------------------编程问答--------------------
看得出,你比只提到CLS的知道得更多 --------------------编程问答-------------------- 非主流,说让微软想做语言兼容呢,肯定就有损失,还是可以接受的,不然语言兼容怎么办? --------------------编程问答-------------------- Bitmap中的高Hight如果负数的话,代表从最低行网上扫描到最上面的行才是正常的图片。
LZ可以去看看Bitmap的格式标准。 --------------------编程问答-------------------- 又见SB --------------------编程问答--------------------
做C井的都是学习C张大的
--------------------编程问答--------------------
up up up up up !!! --------------------编程问答--------------------
--------------------编程问答--------------------
我不懂 C。 --------------------编程问答--------------------
顶。
楼主的语言很污染环境。 --------------------编程问答-------------------- 读过C#高级编程的15章《程序集》再来叫嚣吧。
难道LZ不知道VB和J#是没有uint的,要统一这些语言必须支持的最小规范要求,
必须牺牲uint --------------------编程问答-------------------- --------------------编程问答-------------------- 原子操作针对的是内存地址而非数值,win32中区分&int &uint本来就是多余的,你自己不会转啊? --------------------编程问答-------------------- 别瞎扯什么CLS了. C#里不遵守CLS的东西多得是.
BitMap的width和height用int 的原因多半是因为以前的人都用int
支持无符号数的东西少是因为大家都不怎么用,dotnet有2万多个类全支持的话工作量不小, 微软的人懒得做. --------------------编程问答--------------------
如果C#兼容CLS的话,CLS这个概念就对C#开发者不存在了。
分清楚 FCL 和 C#,这是不同的概念。 --------------------编程问答-------------------- 没注意楼主犯的一个根本性错误,Bitmap、Interlocked.Exchange和C#有啥关系啊?你要责问的是开发C#的人还是开发.net类库的人。照你这么说InterlockedExchange这个函数从属于C或者C++了,殊不知C#也一样可以调用这个win32函数。 --------------------编程问答-------------------- 谢谢各位。虽然小弟偶是从ASM/C/C++过来的,但偶也系统学过Java/js等语言。偶纠结问题的症结在于,C#有uint,但int有的待遇,uint却没有,从而造成很多麻烦。
至于那些叫嚣偶不懂Bitmap格式的大哥哥们,虽然小弟水平不怎么样,但在单片机上偶是自己写过C的bmp解析的,不过,这个问题根本就不是在谈Bitmap文件格式,而是说C#中Bitmap类的构造器参数问题。
还好,有三位大大指点迷津,让小弟偶逐渐明白了这些问题的症结所在,谢谢你们:
--------------------编程问答-------------------- 路过!!!!!!! --------------------编程问答-------------------- 路过!!!!!!! --------------------编程问答-------------------- 学习加围观..... --------------------编程问答-------------------- 不懂无符号数, 也没用过. --------------------编程问答-------------------- biHeight说明图象的高度,以象素为单位。注:这个值除了用于描述图像的高度之外,它还有另一个用处,就是指明该图像是倒向的位图,还是正向的位图。如果该值是一个正数,说明图像是倒向的,如果该值是一个负数,则说明图像是正向的。大多数的BMP文件都是倒向的位图,也就是时,高度值是一个正数。 --------------------编程问答--------------------
Bitmap定义的时候就允许高度为负值的。
修改bitmap的高度为负值,图像上下翻转,测试成功,与语言无关。 --------------------编程问答-------------------- uint和int,在计算机内部的存储都是无差别的. 只是主观的解释不同而已.
uint多出现于内存访问场合.你可以用IntPtr啊. --------------------编程问答-------------------- 那就举一个“无厘头”的实例吧:比如你要在窗体上画一条线,你的Pen对象实例的width属性可以不可以是-20?而这又代表什么意思?实际上windows只会画出1个像素宽的直线,-20跟1跟0都是一样的意思——1个像素宽。
问题是这帮人可以解释这种东西,甚至也可以根本不解释这种东西。我们除非自己重写一套,否则有时候就算咆哮他们、他们也不会修改的。对于什么必须修改、什么不必做修改,什么东西事后重新解释,编程者可以从学术化的思路上可以改一改,变成务实的思路。 --------------------编程问答-------------------- 你不适合搞技术,在生活中骂人还可以体谅,在技术上这样满嘴脏话,不懂瞎叫,只能说明你无知,看着CSDN的很多文章的评论都有一群伪程序员在那里一味的瞎叫、挖苦、嘲笑或者一味的恭维,真替他们悲哀。。。 --------------------编程问答-------------------- 很有趣 --------------------编程问答-------------------- ding!!!!!!!!!!!!!!!!!! --------------------编程问答--------------------
打字就好好打字,别易做图整一堆难懂的网络词汇,还说C#开发人员呢,你先规范好你的中文在说去。 --------------------编程问答-------------------- 还是顶吧~淡定~
补充:.NET技术 , C#