0
如果cachePath
將是一個字符串,我能做到這一點Xamarin.Forms:比較ImageSource的
if(value.Equals(this.cachePath, StringComparison.Ordinal))
現在cachePath
是ImageSource
類型。如何比較value
是否與cachePath
相同?目前我正在這樣做
if(this.cachePath == value)
這是唯一的方法嗎?或者Equals()
如何用於此?
因爲'ImageSource'是一個'Reference Type',比較兩個'ImageSources'將比較參考。不是實際的數據。因爲'String'是一個'Value Type',所以比較將比較實際的字符串而不是參考。你想轉換爲一個'Byte []'並比較這兩個字節數組以得到一個真正的比較 – user1
我認爲將整個圖像讀入一個'byte []'會非常耗時。沒有辦法知道引用是否指向相同的資源? – testing
如果參考是相同的。即'this.cachePath'與'value'是同一個對象。即'this.cachePath = value',那麼這是檢查引用。但是如果'cachePath'是圖像'value'的副本,那麼EVENTHO的圖像是相同的圖像,因爲它們沒有指向同一個對象'cachePath == Value'會返回'false' – user1