मैं C # में डेटटाइम ऑब्जेक्ट को कैसे क्लोन कर सकता हूं?
जवाबों:
दिनांक समय एक मान प्रकार है (struct
)
इसका मतलब है कि निम्नलिखित एक प्रतिलिपि बनाता है:
DateTime toBeClonedDateTime = DateTime.Now;
DateTime cloned = toBeClonedDateTime;
तुम भी सुरक्षित रूप से काम कर सकते हैं जैसे:
var dateReference = new DateTime(2018, 7, 29);
for (var h = 0; h < 24; h++) {
for (var m = 0; m < 60; m++) {
var myDateTime = dateReference.AddHours(h).AddMinutes(m);
Console.WriteLine("Now at " + myDateTime.ToShortDateString() + " " + myDateTime.ToShortTimeString());
}
}
ध्यान दें कि पिछले उदाहरण myDateTime
में प्रत्येक चक्र में नए सिरे से घोषित किया गया है; अगर dateReference
इससे प्रभावित हुआ था , AddHours()
या वास्तव में तेजी से भटक गया होगा - लेकिन यह नहीं है, क्योंकि यह लगा रहता है:AddMinutes()
myDateTime
dateReference
Now at 2018-07-29 0:00
Now at 2018-07-29 0:01
Now at 2018-07-29 0:02
Now at 2018-07-29 0:03
Now at 2018-07-29 0:04
Now at 2018-07-29 0:05
Now at 2018-07-29 0:06
Now at 2018-07-29 0:07
Now at 2018-07-29 0:08
Now at 2018-07-29 0:09
...
Now at 2018-07-29 23:55
Now at 2018-07-29 23:56
Now at 2018-07-29 23:57
Now at 2018-07-29 23:58
Now at 2018-07-29 23:59
var original = new DateTime(2010, 11, 24);
var clone = original;
DateTime
एक मूल्य प्रकार है, इसलिए जब आप इसे असाइन करते हैं तो आप इसे क्लोन भी करते हैं। उस ने कहा, इसका कोई मतलब नहीं है क्योंकि यह अपरिवर्तनीय है; यदि आप कॉपियों में से किसी एक को बदलने का इरादा रखते हैं तो आमतौर पर आप केवल कुछ क्लोन कर सकते हैं।
डेटटाइम एक वैल्यू टाइप है इसलिए हर बार जब आप इसे एक नए वैरिएबल पर असाइन करते हैं तो आप क्लोन कर रहे होते हैं।
DateTime foo = DateTime.Now;
DateTime clone = foo;
DateTime
, यह अपरिवर्तनीय है।