热门标签 | 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文件都是倒向的位图,也就是时,高度值是一个正数。

推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
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社区 版权所有