mam ten fragment kodu w VB NET
:Jak mogę przetłumaczyć VB.NET za ctype() do C#
CType(pbImageHolder.Image, Bitmap).SetPixel(curPoint.X, curPoint.Y, Color.Purple)
jaki jest odpowiedni kod w C#
?
Z góry dziękuję.
mam ten fragment kodu w VB NET
:Jak mogę przetłumaczyć VB.NET za ctype() do C#
CType(pbImageHolder.Image, Bitmap).SetPixel(curPoint.X, curPoint.Y, Color.Purple)
jaki jest odpowiedni kod w C#
?
Z góry dziękuję.
w VB.NET CType(object, type)
rzuca obiektu do określonego rodzaju.
Istnieją dwa sposoby, aby tego dokonać w C#:
Bitmap image = pbImageHolder.Image as Bitmap;
image.SetPixel(curPoint.X, curPoint.Y, Color.Purple);
lub
Bitmap image = (Bitmap)(pbImageHolder.Image);
image.SetPixel(curPoint.X, curPoint.Y, Color.Purple);
((Bitmap)pbImageHolder.Image).SetPixel(curPoint.X, curPoint.Y, Color.Purple)
Z '((Bitmapa) pbImageHolder.Image)' twoją próbą rzucania pbImageHolder do Bitmapy, która prawdopodobnie nie zadziała. Następujący obraz zostanie rzucony: '(Bitmap) (pbImageHolder.Image)' –
@DennisTraub: mylisz się, zobacz specyfikację języka C#, rozdział 7.3.1 "Priorytet operatora i powiązania" (http://go.microsoft. com/fwlink /? LinkId = 199552). Operator dostępu użytkownika "." ma pierwszeństwo nad operatorem rzutowania, więc wyrażenia, takie jak '(TypeWichCastTo) variable.Member' ocenią w ten sposób: 1) najpierw dostęp do' Członka '' zmiennej'; 2) następnie wyślij 'Member' na' TypeWichCastTo'. – Dennis
Właściwie masz rację. Dzięki za wyjaśnienie. –
Cześć jest to kod po konwersji VB do kodu C#:
((Bitmap)pbImageHolder.Image).SetPixel(curPoint.X, curPoint.Y, Color.Purple);
a jeśli chcesz konwersji kodu z VB na C# i vice werset przejść przez następujący link: http://www.developerfusion.com/tools/convert/vb-to-csharp/
1) Podana przez Ciebie pierwsza opcja wymaga sprawdzenia wartości null; "as" nie jest przeznaczone do przypadków użycia bez sprawdzenia wyniku zerowego i nie może być pozycjonowane jako bezpośredni odpowiednik operatora VB 'CType'; 2) Druga opcja ma niepotrzebne nawiasy, zobacz odpowiedź na twój komentarz poniżej. Tak więc, przegłosowano, zwłaszcza w odniesieniu do niedbałego użycia. – Dennis
Jak powiedział Dennis, nie używaj "jak" w takich przypadkach. Mogłoby to prowadzić do nieujawnionego 'NullReferenceException'. –
@Dennis to dobra rada, ale nie musisz się zgodzić tylko ze względu na to. Odpowiedź jest nadal użyteczna – SysDragon