主頁 > .NET開發 > 有微軟的嗎?有人說String.IsNullOrEmpty函式有BUG至今未被修復

有微軟的嗎?有人說String.IsNullOrEmpty函式有BUG至今未被修復

2020-09-24 12:55:38 .NET開發

有人說String.IsNullOrEmpty有BUG,我不信并且問怎么寫才沒有bug?

他說用IF寫就沒有BUG
 if xx isnot nothing andalso xx.length <>0 


然后我看了下String.IsNullOrEmpty的原始碼就困惑了,到底有BUG嗎?


uj5u.com熱心網友回復:

你就想表達trim這個意思么

那么可以試試IsNullOrWhiteSpace

話說trim一下多大事啊,難道你從不trim??

uj5u.com熱心網友回復:

String.IsNullOrEmpty本身應該沒有BUG,應該是他的條件里面有空格,就是:“ ”;
不知道是不是這個原因

uj5u.com熱心網友回復:

參考 1 樓 wanghui0380的回復:
你就想表達trim這個意思么

那么可以試試IsNullOrWhiteSpace

話說trim一下多大事啊,難道你從不trim??

看截圖呀…………………

uj5u.com熱心網友回復:

trim其實是常規操作,正常的資料基本都需要trim,不trim資料都不一定對,比如條件搜索,比如基礎資料庫(除非有特殊要求,他必須嚴格保留)

說到這個問題,來講個笑話
某天xxx產品經理突然在大群里發火,接個圖說“一群吃干飯的開發,用戶登錄,用戶名顯示為null,這么大的bug擺了n天沒人理”
xxx老總跟著說“對,這是嚴重問題,必須嚴肅對待,立刻解決”

2小時后,“開發說經過查證,不存在問題,那個用戶的注冊名就叫null”

uj5u.com熱心網友回復:

ps:連js的jquery,都專門為你們搞了個$.trim(),你們覺著呢?那么javascript這個bug存在了多久?

uj5u.com熱心網友回復:

為什么會說到trim的問題上?~~~~~~~關注點漂移了喲

uj5u.com熱心網友回復:

沒聽說過有什么bug,更不可能至今未修復
他認為未修復,你讓他反映到巨硬那里去不就好了

uj5u.com熱心網友回復:

參考 6 樓 New佳佳 的回復:
為什么會說到trim的問題上?~~~~~~~關注點漂移了喲


沒啥漂移不漂移,你不就想說,他寫的一個人家微軟的一個叼樣,是個2B。不trim都這樣么。

uj5u.com熱心網友回復:

我覺得,他可能測驗到了不可見字符
其實,他直接比較兩個字串長度,也能夠知道的。

uj5u.com熱心網友回復:

一般來說,有bug,也不會至今未被修復了。

uj5u.com熱心網友回復:

我只關心這個函式是否存在他說的BUG,我是不信的

uj5u.com熱心網友回復:

我也不信

uj5u.com熱心網友回復:

截圖里的人沒有證明bug的例子,只是嘴巴上說。。。
那我還懷疑是他代碼的問題了。

uj5u.com熱心網友回復:

參考 7 樓 stherix的回復:
沒聽說過有什么bug,更不可能至今未修復
他認為未修復,你讓他反映到巨硬那里去不就好了

他說讓我去問微軟,我就不信有bug所在來論壇問

uj5u.com熱心網友回復:

一個兩個說有bug的都沒提交過,都是張嘴就來,也沒啥好說的,他覺得有就有啊,早換java早走人最好,這樣的人和他一起作業我都覺得累。

uj5u.com熱心網友回復:

他那么寫的原因只是他不想trim
就像我有時候不想引入jquery的時候也直接用length
但是問題是這是前端的代碼,后端還有一次驗證,偷個懶問題不大

我們一直說trim,是說這是應該處理的。你偷個懶,后面還是要處理

比如查找“計算機a”,你like “%計算機a%”和 like “%計算機a %”(這個帶空格)一樣么

資料基本驗證是省不了的,做除法不驗證分母為0?資料庫里int,你不驗證這個是不是數字?

在說一個實際的事情

就半個月前,市場部門需要一份統計資料。資料需要從兩個庫里統計,結果統計資料有誤。市場部大大發了火,捅到上面。上面大大死命令,2小時必須出資料,同時扣做統計開發的績效,并罰500塊。

知道最后查出資料不對原因是什么?就是B系統偷懶沒有trim,導致一個關聯流水號多了一個空格,資料關聯不上

uj5u.com熱心網友回復:

trim在先,判定在后是正常邏輯

判定在前,trim在后也行。只是你不能忘了

這不是bug,微軟可以幫你一起判斷比如IsNullOrWhiteSpace,但是你自己也得保證邏輯,真忘了就是挖坑了。

所以,個人習慣不挖坑。trim先。如果挖坑再填你的,你的記得填

uj5u.com熱心網友回復:

哦,我一直在用呢

uj5u.com熱心網友回復:

參考 17 樓 wanghui0380 的回復:
trim在先,判定在后是正常邏輯

判定在前,trim在后也行。只是你不能忘了

這不是bug,微軟可以幫你一起判斷比如IsNullOrWhiteSpace,但是你自己也得保證邏輯,真忘了就是挖坑了。

所以,個人習慣不挖坑。trim先。如果挖坑再填你的,你的記得填


老司機,請問這個是BUG嗎?
select ISNUMERIC('\')
有一些版本回傳是0有些版本回傳是1,請問是什么情況?

uj5u.com熱心網友回復:

這是bug?不知道還有個string.IsNullOrWhiteSpace方法嗎?應對string.IsNullOrEmpty不足之處

uj5u.com熱心網友回復:

他雜那么厲害,不提交個BUG拿點錢嗎

uj5u.com熱心網友回復:

這種有啥好爭論的,他說有BUG你就讓他出一個測驗用例出來啊,他要是給不出來,光會說在某些情況下,說明他自己都不知道什么情況下會出BUG,那不知道就來怪函式未免也太弟弟了。

uj5u.com熱心網友回復:

標題嘩眾取寵了一些,只有和檔案寫得不同,并且檔案不是筆誤,那么才能算bug

uj5u.com熱心網友回復:

讓他重現
重現不出來就當放屁

uj5u.com熱心網友回復:

null 和 ""  和"   " 

uj5u.com熱心網友回復:

null 和 ""  和"   " 

uj5u.com熱心網友回復:

參考 4 樓 wanghui0380 的回復:
trim其實是常規操作,正常的資料基本都需要trim,不trim資料都不一定對,比如條件搜索,比如基礎資料庫(除非有特殊要求,他必須嚴格保留)

說到這個問題,來講個笑話
某天xxx產品經理突然在大群里發火,接個圖說“一群吃干飯的開發,用戶登錄,用戶名顯示為null,這么大的bug擺了n天沒人理”
xxx老總跟著說“對,這是嚴重問題,必須嚴肅對待,立刻解決”

2小時后,“開發說經過查證,不存在問題,那個用戶的注冊名就叫null”

這個產品經理懂開發哎。

uj5u.com熱心網友回復:

就看看123456

uj5u.com熱心網友回復:

uj5u.com熱心網友回復:

搞笑的嘛???

uj5u.com熱心網友回復:

參考 20 樓 娃都會打醬油了的回復:
這是bug?不知道還有個string.IsNullOrWhiteSpace方法嗎?應對string.IsNullOrEmpty不足之處

當然知道string.IsNullOrWhiteSpace,不過焦點在他說用if的寫法就沒有bug我就不認可了,非要讓我去問微軟來證明bug的存在

uj5u.com熱心網友回復:

沒啥證明不證明的,你就回“拉不出屎不能怪別人”

你不trim,說明你邏輯不嚴謹。就像說你除個0,軟體還能崩潰呢?怪微軟連個除0都不會?

先洗菜后切菜,養成習慣了,就沒問題。

我不怎么做飯,沒養成這習慣。家里那位經常問的一句是“菜洗了么”,我回“哦,忘了,沒洗,直接切了”

so,我能怪菜刀就是bug么?生產菜刀的為啥不在上面接跟水管,我一邊切他就一邊給我洗了

uj5u.com熱心網友回復:

如果他把這叫bug
那微軟的bug多了去了,比如null

你干嘛每次都要寫 xxx?.xxx 或者xxx??""
或者
if(xxx!=null)
{
}

好大一個bug,微軟從出生就帶的bug,二三十年了,一個null都沒搞定。

人家只是提供了一個工具,他只是工具。邏輯自己保證。你覺著工具不好,沒問題。自己寫個擴展方法,也行啊。沒人攔著你

你就覺著刀上不加個滋水槍就是bug,沒問題。你把刀上加個滋水槍申請個專利,沒問題滴。

uj5u.com熱心網友回復:

沒有接觸過,知乎查一下吧

uj5u.com熱心網友回復:

語言是一種工具,庫函式也是
所謂的工具肯定不是萬能,人從來沒有創造出萬能的工具,就好比汽車,他不能飛,飛機他不能潛入海底。任何工具作用都是有界限的
工具不是阿里巴巴的神燈。想讓他干什么就干什么。
回到樓主的問題。string.isnullempty()這個函式有沒有bug,首先要確定什么為bug,
個人以為,所謂程式的bug,應該是,它做不到它所說明的功能,或者是大部分時間能做到,但個別情況下不行。
那么,就應該查一下他的說明書,看看他到底要實作什么功能,做得到或者做不到
以下摘自msdn關于這個函式的說明
String.IsNullOrEmpty(String) Method
Definition
Namespace:
System
Assemblies:
System.Runtime.dll, mscorlib.dll, netstandard.dll
Indicates whether the specified string is null or an empty string ("").
注意,這個函式的功能是判斷一個string是否為null或者是empty string("")
我想大家應該明白了吧?

uj5u.com熱心網友回復:

菜鳥前來圍觀學習

uj5u.com熱心網友回復:

這個DY不管換什么語言,都自帶bug屬性。

另外樓上一堆動不動就先trim的,難道不要根據業務來確定要不要用嗎。一篇文章人家好不容易敲幾個首尾換行統一風格,就被你trim了??。用戶故意或者非故意的填寫用戶名首尾敲空格,tirm一下也算合理,如果不允許出現空格,直接果斷拒絕也是合理合法的??

uj5u.com熱心網友回復:

需要理論么
讓提bug的截圖啊
沒jb說個圖

uj5u.com熱心網友回復:

什么????問題啊,我們

uj5u.com熱心網友回復:

先搞清楚“”和“ ”的區別
string.IsNullOrEmpty("")  結果是true
string.IsNullOrEmpty(" ") 結果是false
string.IsNullOrEmpty(" ".Trim()) 結果是true,等效于第一個
空字串和空格字串是不一樣的
IsNullOrEmpty 指的就是null或者空字串

uj5u.com熱心網友回復:

忘了說了,還有就是一個我們容易混淆的點:
string.Empty不分配存盤空間, 
""分配一個長度為空的存盤空間,
C#很多地方,兩者通用。我個人用string.Empty用的多。

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/119033.html

標籤:VB.NET

上一篇:Windows7、10的熱鍵屏蔽

下一篇:VS源程式從2017版拷到2019版默認打開時,源程式發生改變,是以前的版本

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more