VB -> C#: Switch on Object type results in behaviour change when cases are a different type
還沒有人認領這個 Issue。
評估
研究方向
透過轉換器重現 VB.NET 範例,並檢查 Select Case-to-switch 轉換的進入點。比較 selector 為 Object 且 case 值為另一種型別時的行為,然後為所示輸入和預期的 C# 行為新增覆蓋。轉換後的程式碼保留 VB.NET 的比對結果,且現有轉換測試持續通過,即表示完成。
由索引模型根據 Issue 內容生成。
描述
VB.Net input code
Public Class VisualBasicClass
Sub Main()
Dim StrObject As Object = "10"
Select Case StrObject
Case 10
Console.WriteLine("Ten")
Case 20
Console.WriteLine("Twenty")
Case Else
Console.WriteLine("Else")
End Select
Console.ReadLine()
End Sub
End Class
Output: Ten
Erroneous output
public partial class VisualBasicClass
{
public void Main()
{
object StrObject = "10";
switch (StrObject)
{
case 10:
{
Console.WriteLine("Ten");
break;
}
case 20:
{
Console.WriteLine("Twenty");
break;
}
default:
{
Console.WriteLine("Else");
break;
}
}
Console.ReadLine();
}
}
Output: Else
Expected output
Looks pretty gross, but maybe something like this:
public partial class VisualBasicClass
{
public void Main()
{
object StrObject = "10";
switch (StrObject)
{
case var @case when Operators.ConditionalCompareObjectEqual(StrObject, 10, false):
{
Console.WriteLine("Ten");
break;
}
case var @case when Operators.ConditionalCompareObjectEqual(StrObject, 20, false):
{
Console.WriteLine("Twenty");
break;
}
default:
{
Console.WriteLine("Else");
break;
}
}
Console.ReadLine();
}
}
Output: Ten
Details
- Product in use: both
- Version in use: VS Extension Version 9.0.4.0 / Website latest
- Did you see it working in a previous version, which? No
- Any other relevant information to the issue, or your interest in contributing a fix.
- 主要語言
- C#
- 星號
- 913
- 分支
- 244
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
icsharpcode/CodeConverter 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 78/100
icsharpcode/CodeConverter#1271 · 1 則留言 ·
-
C# -> VB
難度 4/5 3-5 天 新手友好度 35/100
icsharpcode/CodeConverter#1281 ·
-
難度 3/5 1-2 天 新手友好度 55/100
icsharpcode/CodeConverter#1275 ·
-
VB -> C#
難度 3/5 1-2 天 新手友好度 62/100
icsharpcode/CodeConverter#1273 ·
-
VB -> C#: "Group By Into" Linq queries supressing aggregations ("Into" part) in the converted code未關閉Difficult area VB -> C#
難度 3/5 1-2 天 新手友好度 74/100
icsharpcode/CodeConverter#1272 ·
查看 icsharpcode/CodeConverter 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 72/100
SubtitleEdit/subtitleedit#15462 ·
維護者通常 1 天內回覆
-
:watch: Not Triaged
難度 2/5 1-3 小時 新手友好度 72/100
維護者通常 1 天內回覆
-
comp:instrumentation.aspnetcore
難度 2/5 1-3 小時 新手友好度 72/100
open-telemetry/opentelemetry-dotnet-contrib#5427 ·
維護者通常 1 天內回覆
-
design-proposal
難度 2/5 1-3 小時 新手友好度 78/100
dotnet/aspnetcore#69592 ·
維護者通常 1 天內回覆
-
Client Container Registry customer-reported needs-team-attention question Service Attention
難度 2/5 1-3 小時 新手友好度 74/100
Azure/azure-sdk-for-net#63470 · 3 則留言 · 1 個 reaction ·
維護者通常 1 天內回覆