[]

c# datetime yapısı nasıl çalışıyor?

programlamada yeniyim. bir uygulama örneğinde kullanılan datetime yapısı hakkında kafama takılan bazı sorular oldu.

int hour = Datetime.Now.Hour;

şimdi burada Datetime yapısının tanımlandığı yere gidince şöyle bir şey gördüm.

public static DateTime Now { get; }
public int Hour { get; }

bu kısımda biz bir static üye yardımıyla bir propertye ulaşabiliyoruz. bu kısmı anlamadım. normalde static olmayan bir sınıf üyesine o sınıftan bir nesne oluşturmadan ulaşamıyorduk ama böyle kullanabiliyoruz. bu kısım kafama takılıyor. bilmediğim ne var burada merak ediyorum.

bir de bu datetime yapısı nasıl çalışıyor? tanımlamalara baktım sadece metot imzaları ve propertyler tanımlanmış. herhangi bir işlem yok. bu yapı nasıl çalışıyor?

 
emin olmamakla beraber temel veriler zaten hali hazırda .net içerisinde gömülü geliyordur.


  • rhan  (30.05.17 18:13:45) 
Static keywordunu aciklayayim:
Object oriented dillerde (C#, Java vs.) bir nesnenin propertisine erismek icin "new" keywordu ile yaratmak gerekir. Ornegin Araba diye bir nesne dusun. Aslinda Araba bir genel isimdir, nesne olamaz cunku dunyada milyonlarca araba var ve her biri birbirinden farkli. Yani tekil degildir. Araba kelimesi de bir arabayi degil genel olarak bir kavrami ifade eder. O nedenle "motorGucu" diye bir property almak istersek o nesneyi yaratmadan alamayiz. Cunku her arabanin motor gucu farklidir, araba diye tekil bir nesne yoktur, araba genel bir isimdir ve bu genel kavramdan bir somut nesne yaratmadan motor gucunu alamayiz. Peki bu static nedir? static tekillik iceren nesnelere veririz. Yani ondan sadece 1 tane vardir, baska da yoktur. Ornegin pi sayisi tektir, degismez. O nedenle static pi sayisindan bir nesne yaratmamiz gekemez, o zaten kendisi bir nesnedir. Ornegin "dunya" bir tane vardir, baska gezegenler olsa da 1 dunya var o nedenle dunya static nesnesinin tum ozellikleri sabit yani static dir. SEnin bu orneginde ise "now" static tanimlanmistir. Cunku "now" yani universal olarak su anin zamani sadece 1 tanedir. dunyanin neresine gidersen git, universal zaman 1 tanedir ve "now" dedigin anda hangi "context" de olursan ol tek bir sey alirsin. o nedenle bir obje yaratmaya gerek yok (eger paralel evrenler ve zamanlar soz konusu degilse).

Eger bir methodun icerigini goremiyorsan ve o method calisiyor ise o icerik native kod olarak calisiyordur. Yani o kod C# dili ile yazilmamistir, O methodun icerigi dolu ama baska dilde olan o icerik goruntulenmedigi ici bostur. Buyuk ihtimalle o icerik C dili ile yazilmistir.
  • emrahday  (30.05.17 18:19:58) 
o sınıfa daha ayrıntılı bakmak lazım. bu iki satırdan anlayamayız.


  • pgup  (30.05.17 18:44:22) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.