আমি কীভাবে সি # তে ডেটটাইম অবজেক্টটি ক্লোন করতে পারি?


89

আমি কীভাবে সি # তে ডেটটাইম অবজেক্টটি ক্লোন করতে পারি?


6
আপনি এমনকি কেন ক্লোন করতে DateTimeহবে, এটি অপরিবর্তনীয়।
লুকাজয়েড

উত্তর:


205

ডেটটাইম একটি মান প্রকার ( 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

26
var original = new DateTime(2010, 11, 24);
var clone = original;

DateTimeএকটি মান ধরণের, সুতরাং যখন আপনি এটি নির্ধারিত আপনি এটি ক্লোনও। এটি বলেছিল, এটি ক্লোন করার কোনও অর্থ নেই কারণ এটি পরিবর্তনযোগ্য; সাধারণত যদি আপনি কোনও অনুলিপি পরিবর্তন করতে চান তবে আপনি কেবলমাত্র কিছু ক্লোন করতেন।


4
+1 সম্মত। যেভাবে সমস্যার মুখোমুখি হয়েছি তা হ'ল একটি নতুন ডেটটাইম অবজেক্ট তৈরি করা এবং মূল ডেটটাইম অবজেক্ট থেকে আমি (দিন, মাস, বছর) যেমন ক্লোন করতে চেয়েছি প্রয়োজনীয় অংশগুলি অনুলিপি করে নতুন সময়টির জন্য ম্যানুয়ালি সময় নির্ধারণ করেছিলাম .. .. উদাহরণ হিসাবে।
ডাল

12

ডেটটাইম একটি মান ধরণের তাই প্রতিবার আপনি যখন কোনও নতুন ভেরিয়েবলকে ক্লোনিং করছেন তখন এটি নির্ধারণ করুন।

DateTime foo = DateTime.Now;
DateTime clone = foo;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.