আমি কীভাবে সি # তে ডেটটাইম অবজেক্টটি ক্লোন করতে পারি?
উত্তর:
ডেটটাইম একটি মান প্রকার ( 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
হবে, এটি অপরিবর্তনীয়।