Łukasz Gąsior
  • Home
  • now!
  • Blog
  • Po polsku
Social Links
Twitter
LinkedIn
Facebook
YouTube
Reddit
Instagram
GitHub
Medium
RSS
Łukasz Gąsior
  • Home
  • now!
  • Blog
  • Po polsku
  • Po polsku

Quick Tip: 01. C# operator ??

  • 2008-11-18
  • 5 komentarzy
  • 1 minute read
  • 362 views

Podczas tworzenia oprogramowania jedną z częściej wykonywanych operacji jest sprawdzanie, czy dany obiekt nie jest nullem. Często wygląda to tak:
[sourcecode language=”csharp”] MyType result;
if(Object1 != null)
{
result = Object1;
}
else
{
result = Object2;
}
[/sourcecode] lub
[sourcecode language=”csharp”] MyType result = Object1 != null ? Object1 : Object2;
[/sourcecode] Kod ten możemy sobie uprościć stosując operator ?? (podwójny znak zapytania). Operator ten zwraca obiekt będący “z lewej strony”, jeżeli jest on różny od null lub jeżeli jest nullem obiekt będący z jego “z prawej strony”.

Podany przykład będzie wyglądał tak:
[sourcecode language=”csharp”] MyType result = Object1 ?? Object2;
[/sourcecode] lub
[sourcecode language=”csharp”] MyType result = Object1 ?? Object2 ?? Object3;
[/sourcecode]

Oczywiście Object1 może być również funkcją zwracającą obiekt, np:
[sourcecode language=”csharp”] public MyType MyObject
{
get { return myObject ?? (myObject = objectFactory.Create()); }
}
[/sourcecode] zamiast:
[sourcecode language=”csharp”] public MyType MyObject
{
get
{
if (myObject == null) myObject = objectFactory.Create();
return myObject;
}
}
[/sourcecode]

Korzystając z tego operatora należy pamiętać, że pusty string nie jest nullem!

Share
Tweet
Share
Share
You May Also Like
View Post
  • Po polsku

Software Craftsmanship Wrocław

  • 2017-06-06
View Post
  • Po polsku

Pilnuj typów danych

  • 2014-02-26
View Post
  • Po polsku

ReSharper Essentials – poszło!

  • 2014-02-21
View Post
  • Po polsku

Turbo-Mode Developera

  • 2014-02-19
View Post
  • Po polsku

Badanie usability by TechSmith

  • 2014-02-13
View Post
  • Po polsku

Global Windows Azure Bootcamp 2014

  • 2014-02-05
View Post
  • Po polsku

Quick tip: 12. Stosuj AsNoTracking() gdzie się da!

  • 2013-01-27
View Post
  • Po polsku

Quick tip: 11. Indexed views vs. SQL Server Express

  • 2012-07-23
5 comments
  1. Tom pisze:
    2008-11-19 o 10:02

    Czy to 01 w tytule oznacza, że to będzie stałą serią?:)

  2. Łukasz Gąsior pisze:
    2008-11-19 o 16:50

    zgadza się 🙂
    porady będą głównie dotyczyły C# i ASP.NET

  3. Maciek pisze:
    2008-11-25 o 19:33

    Mógłbyś zdradzić czego używasz do formatowania kodu (czy to jest może wtyczka do Windows Live Writera)?

  4. Łukasz Gąsior pisze:
    2008-11-27 o 13:10

    jest to plugin do WordPressa – SyntaxHighlighter
    do pobrania tutaj: http://wordpress.org/extend/plugins/syntaxhighlighter/
    lub tutaj: http://code.google.com/p/syntaxhighlighter/
    plugin jest napisany w javascript więc można go zintegrować z każdym systemem blogowym

  5. Pingback: dotnetomaniak.pl

Comments are closed.

click & help!
Nakarm dziecko!
Follow me
RESHARPER ESSENTIALS
ReSharper Essentials
CODINGTV();
codingtv();
Twitter Feed
Categories
  • Azure Cloud (6)
  • Po polsku (104)
  • Windows (1)
Featured Posts
  • Azure Activity Log – Change History
    • 2020-09-29
  • Diagram Driven Cloud Infrastructure with Cloud Maker
    • 2020-09-22
  • Azure ARM template, but it is not JSON!
    • 2020-09-15
About
👍 Cloud | DevOps | Development | Technical Leadership | 📗Author of "ReSharper Essentials
© 2019 Łukasz Gąsior. All rights reserved.
hosted with ♥️ on webio | Polityka prywatności

Input your search keywords and press Enter.

Ta strona korzysta z ciasteczek aby świadczyć usługi na najwyższym poziomie. Dalsze korzystanie ze strony oznacza, że zgadzasz się na ich użycie.ZgodaPolityka prywatności