热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微软开发C#的这帮人,尼玛到底还知不知道有一种数据类型叫做无符号整型?

微软开发C#的这帮人,尼玛到底还知不知道有一种数据类型叫做无符号整型?妮们当然知道的撒不然C#里怎么会有uint怎么会有Uint16怎么会有Uint32但你们一个newBitma
微软开发C#的这帮人,尼玛到底还知不知道有一种数据类型叫做无符号整型?

妮们当然知道的撒
不然C#里怎么会有uint怎么会有Uint16怎么会有Uint32

但你们一个new Bitmap,width和height居然尼玛用int~你们哪辈子见过width与height是负数的?难不成尼玛把标量当矢量用?技术创新?肏尼玛一天到晚就发编码规范,到最后尼玛自己不遵守规范。

尼玛Interlocked.Exchange 有 (ref int, int) 居然就木有 (ref uint, uint)?难道一个uint还要老子去加一个object lockuint ??

58 个解决方案

#1


本帖最后由 caozhy 于 2011-05-31 21:00:22 编辑
uint 不是 CLS 的类型。

#2


.NET 类库被设计为跨语言兼容的。

#3


引用 1 楼 caozhy 的回复:
uint 不是 CLS 的类型。
.NET 类库被设计为跨语言兼容的。


难道CLS是残缺语言?连uint都木有,想和脚本语言比谁更简介比谁更脑残比谁更非主流?

#4


引用 3 楼 majiatianxia 的回复:
引用 1 楼 caozhy 的回复:
uint 不是 CLS 的类型。
.NET 类库被设计为跨语言兼容的。


难道CLS是残缺语言?连uint都木有,想和脚本语言比谁更简介比谁更脑残比谁更非主流?

(1) CLS 不是语言,是语言规范。尽可能少的规定元素类型,意味着可以设计更灵活的语言。
(2) 你不能因为人民币只有1元、5元、10元、20元、50元、100元面额,没有30元或者8元而觉得人民币脑残。

#5


另外我觉得 bitmap 使用负值表示翻转或者镜像图像也未尝不可。

#6


应该是语言来规范开发人员?还是应该开发人员来规范自己?
如果你明知道width与height无负数,还不规范自己,那就是自己有问题了.
----------------------------------------------------------
PS:别说C#开发者了,你还是先规范一下你自己的语言吧.

#7


引用 4 楼 caozhy 的回复:
引用 3 楼 majiatianxia 的回复:
引用 1 楼 caozhy 的回复:
uint 不是 CLS 的类型。
.NET 类库被设计为跨语言兼容的。


难道CLS是残缺语言?连uint都木有,想和脚本语言比谁更简介比谁更脑残比谁更非主流?

(1) CLS 不是语言,是语言规范。尽可能少的规定元素类型,意味着可以设计更灵活的语言。
(2) 你不能因为人民币只有1元、5元、10元、20元、50元、100元面额,没有30元或者8元而觉得人民币脑残。


(1).数据类型越少就越灵活?那么只保留一个双精度的double而把其他基元数字数据类型都扔掉,那岂不是更灵活?

(2).大哥,别偷换概念行不?偶说滴是C#里本来有的uint,而缺少相应的原子操作API。与人民币有没有30元或8元,没有本质上的联系,就算打比方也没有可比性。

#8


引用 5 楼 caozhy 的回复:
另外我觉得 bitmap 使用负值表示翻转或者镜像图像也未尝不可。


那既然这么说,我建议new Bitmap的width和height全部改为string。

如果string是一个正数,就当int来处理
如果是负数,就按你说的去做
如果string=="QQ",new 出来的Bitmap就是一个肥企鹅的图像
如果string=="微软老总",那么new 出来的Bitmap可以是比尔盖茨的照片啊..
如果string=="某些敏感事件",那么new出来的Bitmap就是两个字:“河蟹”

这样子是不是更爽更刺激更智能更强大更湿更和谐啊?

#9


引用 6 楼 ourola 的回复:
应该是语言来规范开发人员?还是应该开发人员来规范自己?
如果你明知道width与height无负数,还不规范自己,那就是自己有问题了.
----------------------------------------------------------
PS:别说C#开发者了,你还是先规范一下你自己的语言吧.


我问你,神马是规范?是不是语言开发者设计出来的脑残非主流的规定,也算是规范?那她们为毛要更新为毛要打补丁为毛要发布新版本?

#10


纠缠在width、height使用int还是uint,这也不是主流非脑残的人所做的事。许多编程语言还没有无符号数呢。

#11


本帖最后由 caozhy 于 2011-05-31 21:26:38 编辑
引用 7 楼 majiatianxia 的回复:
引用 4 楼 caozhy 的回复:
引用 3 楼 majiatianxia 的回复:
引用 1 楼 caozhy 的回复:
uint 不是 CLS 的类型。
.NET 类库被设计为跨语言兼容的。


难道CLS是残缺语言?连uint都木有,想和脚本语言比谁更简介比谁更脑残比谁更非主流?

(1) CLS 不是语言,是语言规范。尽可能少的规定元素类型,意味着可以设计更灵活的语言。……

你没有明白我说的意思。

我不是说一种编程语言类型越少越灵活。

我是说,CLS越简单,那么设计一种兼容CLS的语言就越容易。这种语言的设计者有更大的灵活性。同时CLS被定义为CTS的一个基本的,必不可少的子集,而CTS则是CLS的衍生,这好比提供基本的面额。

#12


主流非脑残的人自己去设计一个.net framework,用十万倍的说服力来说服别人。

#13


偶也知道撒。。偶写东西一项很按规范去做,最后发现原子替换居然不支持uint,偶直接怒了...幸亏可以整个解决方案进行替换,但是还得把替换的地方一个一个地去检查,以免发生负数错误或者超出范围的错误。

偶这些发帖只是想发泄下,生活中总有蛋疼的事,当事人发泄下,后来者作为经验教训。

#14


这是语言啊 你可以不用,但是你又创不出来,要跟着大众走!!

#15


引用 12 楼 sp1234 的回复:
主流非脑残的人自己去设计一个.net framework,用十万倍的说服力来说服别人。


大哥,你这样子说就不对了,这个是强盗逻辑~

你不能因为别人抱怨某产品不好,而去说,小样你去做这个产品出来,做不出你就没资格抱怨。不然,所有厂家都以强盗逻辑为理由,而让你用劣质产品,因为这些大多数产品,相信你一个人根本做不出来,所以,你就只能挨欺负而不能去抱怨投诉?

#16


那么按照你的逻辑,java没有无符号数,它是不非主流脑残?

没有办法,对待你的逻辑只有一个办法,就是实际去看看你能建设什么。因为你的批评并没有伤害人家丝毫。

#17


引用 16 楼 sp1234 的回复:
那么按照你的逻辑,java没有无符号数,它是不非主流脑残?

没有办法,对待你的逻辑只有一个办法,就是实际去看看你能建设什么。因为你的批评并没有伤害人家丝毫。


我抱怨的核心是,C#有了无符号整型,却比有符号整型少了很多本应该有的待遇。java直接就没有无符号整型,我自然就不会去抱怨java。

#18


.net framework 设计成跨语言的,那类型系统必然是具有通用性的,而不能设计为特殊性的类型,不然其他语言怎么去兼容呢? 

C#的无符号整型 无法用在 new bitmap上,不能说明 “比有符号整型少了很多本应该有的待遇”。

可以用在很多与framework无关的地方

#19


引用 17 楼 majiatianxia 的回复:
我抱怨的核心是,C#有了无符号整型,却比有符号整型少了很多本应该有的待遇。java直接就没有无符号整型,我自然就不会去抱怨java。

那我随便给你说一个可以花精力去消磨的地方,比如说windows api中设置画笔宽度:
http://baike.baidu.com/view/1706960.html?fromTaglist
仅因为他们在宽度上使用了int,你想让微软把windows api设计团队当作“脑残的一代”而废弃了吗?那么谁又来接替他们呢?

#20


引用 19 楼 sp1234 的回复:
引用 17 楼 majiatianxia 的回复:
我抱怨的核心是,C#有了无符号整型,却比有符号整型少了很多本应该有的待遇。java直接就没有无符号整型,我自然就不会去抱怨java。

那我随便给你说一个可以花精力去消磨的地方,比如说windows api中设置画笔宽度:
http://baike.baidu.com/view/1706960.html?fromTaglist
仅因为他……

汗....
受教了,原来从WindowsAPI就开始不按规范来做事。
正所谓上梁不正下梁歪。。

#21


你的能力还不够说这个问题,原谅你的无知。

#22


建议楼主去了解下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.

#23


路过,又回来围观一下。

#24


没有意义的啊

#25


深夜顶起

#26


观望中,如果不满足必要,我相信微软会有对策解决的,毕竟语言只是一种工具

#27


该回复于2011-06-01 09:06:52被版主删除

#28


铁轨之间的距离是由两千年前两匹马的屁股宽度决定的

#29


你不知道Bitmap是.net framework中的类吗,你不知道.net framework不是只给C#一种语言用的吗,如果Bitmap使用了无符号类型那没有无符号类型的语言怎么用它?
知道无符号类型和有符号类型一起做运算会出问题吗,知道Java为什么要设计成只有有符号类型吗?抱怨之前先去学下基础知识吧.

#30


引用 28 楼 wxgiter 的回复:
铁轨之间的距离是由两千年前两匹马的屁股宽度决定的

看得出,你比只提到CLS的知道得更多

#31


非主流,说让微软想做语言兼容呢,肯定就有损失,还是可以接受的,不然语言兼容怎么办?

#32


Bitmap中的高Hight如果负数的话,代表从最低行网上扫描到最上面的行才是正常的图片。
LZ可以去看看Bitmap的格式标准。

#33


又见SB

#34


引用 1 楼 caozhy 的回复:
uint 不是 CLS 的类型。

做C井的都是学习C张大的

#35


引用 6 楼 ourola 的回复:
应该是语言来规范开发人员?还是应该开发人员来规范自己?
如果你明知道width与height无负数,还不规范自己,那就是自己有问题了.
----------------------------------------------------------
PS:别说C#开发者了,你还是先规范一下你自己的语言吧.



up  up  up  up  up !!!

#36


引用 21 楼 ssp2009 的回复:
你的能力还不够说这个问题,原谅你的无知。


#37


引用 34 楼 flyerwing 的回复:
引用 1 楼 caozhy 的回复:
uint 不是 CLS 的类型。

做C井的都是学习C张大的

我不懂 C。

#38


引用 6 楼 ourola 的回复:
应该是语言来规范开发人员?还是应该开发人员来规范自己?
如果你明知道width与height无负数,还不规范自己,那就是自己有问题了.
----------------------------------------------------------
PS:别说C#开发者了,你还是先规范一下你自己的语言吧.



顶。
楼主的语言很污染环境。

#39


读过C#高级编程的15章《程序集》再来叫嚣吧。
难道LZ不知道VB和J#是没有uint的,要统一这些语言必须支持的最小规范要求,
必须牺牲uint

#40


该回复于2012-04-15 20:46:57被版主删除

#41


原子操作针对的是内存地址而非数值,win32中区分&int &uint本来就是多余的,你自己不会转啊?

#42


别瞎扯什么CLS了. C#里不遵守CLS的东西多得是. 
BitMap的width和height用int 的原因多半是因为以前的人都用int

支持无符号数的东西少是因为大家都不怎么用,dotnet有2万多个类全支持的话工作量不小, 微软的人懒得做.

#43


引用 42 楼 assiwe 的回复:
别瞎扯什么CLS了. C#里不遵守CLS的东西多得是. 
BitMap的width和height用int 的原因多半是因为以前的人都用int

支持无符号数的东西少是因为大家都不怎么用,dotnet有2万多个类全支持的话工作量不小, 微软的人懒得做.

如果C#兼容CLS的话,CLS这个概念就对C#开发者不存在了。

分清楚 FCL 和 C#,这是不同的概念。

#44


没注意楼主犯的一个根本性错误,Bitmap、Interlocked.Exchange和C#有啥关系啊?你要责问的是开发C#的人还是开发.net类库的人。照你这么说InterlockedExchange这个函数从属于C或者C++了,殊不知C#也一样可以调用这个win32函数。

#45


谢谢各位。虽然小弟偶是从ASM/C/C++过来的,但偶也系统学过Java/js等语言。偶纠结问题的症结在于,C#有uint,但int有的待遇,uint却没有,从而造成很多麻烦。

至于那些叫嚣偶不懂Bitmap格式的大哥哥们,虽然小弟水平不怎么样,但在单片机上偶是自己写过C的bmp解析的,不过,这个问题根本就不是在谈Bitmap文件格式,而是说C#中Bitmap类的构造器参数问题。

还好,有三位大大指点迷津,让小弟偶逐渐明白了这些问题的症结所在,谢谢你们:

引用 19 楼 sp1234 的回复:
那我随便给你说一个可以花精力去消磨的地方,比如说windows api中设置画笔宽度:
http://baike.baidu.com/view/1706960.html?fromTaglist
仅因为他们在宽度上使用了int,你想让微软把windows api设计团队当作“脑残的一代”而废弃了吗?那么谁又来接替他们呢?


引用 28 楼 wxgiter 的回复:
铁轨之间的距离是由两千年前两匹马的屁股宽度决定的


引用 42 楼 assiwe 的回复:
别瞎扯什么CLS了. C#里不遵守CLS的东西多得是. 
BitMap的width和height用int 的原因多半是因为以前的人都用int

支持无符号数的东西少是因为大家都不怎么用,dotnet有2万多个类全支持的话工作量不小, 微软的人懒得做.

#46


路过!!!!!!!

#47


路过!!!!!!!

#48


学习加围观.....

#49


不懂无符号数, 也没用过.

#50


biHeight说明图象的高度,以象素为单位。注:这个值除了用于描述图像的高度之外,它还有另一个用处,就是指明该图像是倒向的位图,还是正向的位图。如果该值是一个正数,说明图像是倒向的,如果该值是一个负数,则说明图像是正向的。大多数的BMP文件都是倒向的位图,也就是时,高度值是一个正数。

推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
author-avatar
aska
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有