سی شارپ

انواع داده های بی نام (Anonymous)

اساطیر زبان

تا کنون، آموختیم که اشیاء از یک کلاس می آیند. یک کلاس با تعداد فیلدها، ویژگی ها و/یا متدها بیان می شود؛ و شما می توانید از این کلاس به عنوان یک شیء نمونه سازی کنید. با این حال، با معرفی انواع داده های بی نام؛ شما دیگر نمی توانید کلاسی را قبل از ایجاد یک شیء بیان کنید. نگران نباشید؛ کلاس ها در کل از بین نرفته اند، درست است که انواع بی نام داده ها (یا اشیاء) تاحدودی با محدودیت همراه هستند؛ اما برای برخی از موارد؛ انتخابی بسیار عالی هستند.

یک نوع داده بی نام با استفاده از اپراتور new ، در ترکیب با مقداردهی یک شیء؛ مقداردهی اولیه می شوند؛ به این ترتیب؛ این امر بسیار شبیه به نمونه سازی یک کلاس می باشد؛ شما فقط نام کلاس را انتخاب می کنید. همچنین؛ از آنجایی که کلاسی پشت شیء وجود ندارد؛ شما هنگامی که می خواهید مرجع شیء خودتان را بازیابی کنید؛ باید از کلید واژه var استفاده نمایید. این ممکن است به نظرتان پیچیده باشد؛ اما مثال زیر به شما نشان می دهد که این موضوع آنطور که به نظر می آید پیچیده نیست.

var user = new
{
Name = “John Doe”,
Age = 42
};
Console.WriteLine(user.Name + ” – ” + user.Age + ” years old”);

همه اش همین است که می بینید. ما اکنون یک شیء با اطلاعاتی در مورد یک کاربر (نام و سن) در اختیار داریم. انواع بی نام داده ها برای بسیاری از موقعیت ها عالی هستند؛ به ویژه زمانی که باید برخی چیزها را که پیچیده تر از یک رشته یا یک عدد هستند، به سرعت بازگردانید. انواع بی نام داده ها به شما اجازه می دهد که ویژگی هایی را در حین پردازش ایجاد کنید، بدون این که در مورد تعریف یک کلاس در ابتدا و جایگزینی این کلاس زمانی که نیاز به تغییرات دارید؛ نگران باشید. اما همانطور که ذکر شد؛ محدودیت هایی وجود دارد که باید هنگام استفاده از یک نوع بی نام داده ها در تعریف یک کلاس، در نظر داشته باشید.

  • برخلاف یک کلاس واقعی، یک داده ی بی نام نمی تواند یک فیلد یا متد داشته باشد – فقط ویژگی ها را دارد.
  • زمانی که شیء مقدار دهی شد؛ شما نمی توانید ویژگی هایی را به آن اضافه کنید.
  • ویژگی هایی که فقط خواندنی هستند – به محض این که شیء مقدار دهی شد؛ دیگر مقدار آنها قابل تغییر نیست.

اما همان طور که گفته شد؛ انواع بی نام داده ها همچنان برای بسیاری از وظایف، کاربردی هستند. یک استفاده ی معمولی از آنها؛ زمانی است که شما یک شیء پیچیده داشته باشید (از یک کلاس تعریف شده) و لازم باشد که آن را ساده سازی کنید؛ برای مثال ممکن است شما مجبور باشید که شیء را تا حد امکان کوچک نگه دارید تا آن را به یک مرورگر ارسال کنید؛ یا اینکه شاید شما یک شیء کامل دارید که اطلاعات حساسی را در بر می گیرد و شما نمی خواهید آن را در دسترس مشتری قرار بدهید. همان طور که در مثال زیر نشان داده می شود؛ به کار بردن داده های بی نام؛ در این موارد بسیار عالی است:

using System;
using System.IO;

namespace AnonymousTypes
{
class Program
{
static void Main(string[] args)
{
string pathOfExe = System.Reflection.Assembly.GetEntryAssembly().Location;
FileInfo fileInfo = new FileInfo(pathOfExe);
var simpleFileInfo = new
{
Filename = fileInfo.Name,
FileSize = fileInfo.Length
};
Console.WriteLine(“File name: ” + simpleFileInfo.Filename + “. Size: ” + simpleFileInfo.FileSize + ” bytes”);
}
}
}

خط اول به سادگی filename آن فایلی را که در حال حاضر در حال اجرا می باشد؛ یعنی برنامه خودمان را دراختیار ما قرار می دهد. ما از این برای ایجاد یک نمونه از کلاس FileInfo استفاده می کنیم؛ که سپس اطلاعات زیادی درمورد این فایل خاص را شامل می شود. ما تمام این اطلاعات را نمی خواهیم؛ بنابراین؛ با استفاده از اطلاعاتی که از نمونه اصلی FileInfo داریم؛ یک نسخه ساده شده از آن را با یک نوع داده ی بی نام ایجاد می کنیم.

شما احتمالاً متوجه شده اید که ما به هر یک از ویژگی های تعریف شده در نوع بی نام؛ یک نام اختصاص داده ایم (FileInfo یا FileSize) – این امر میتواند معنای بسیار خوبی ایجاد کند؛ زیرا ما می خواهیم به آنها در ادامه دسترسی داشته باشیم. با این حال، زمانی که مبنای شیء خود را روی اطلاعاتی قرار می دهیم که از یک شیء موجود به دست آمده است؛ می توانیم درواقع نامی که خودمان می خواهیم انتخاب کنیم و به کامپایلر اجازه می دهیم که از نام ویژگی که ما اختصاص داده ایم؛ استفاده کند. مثال زیر را نگاه کنید:

var simpleFileInfo = new
{
fileInfo.Name,
fileInfo.Length
};

اکنون ما دو ویژگی داریم که به جای Filename و FileSize ؛ Name (نام) و Length (طول) نامیده می شوند. یکی از ساده سازی های خوبی که داده های بی نام ایجاد می کنند؛ زمانی است که شما به نام ها اهمیت نمی دهید یا به احتمال بیشتر؛ زمانی که شما در واقع، نام هایی مانند شیء اصلی را ترجیح می دهید:

خلاصه

داده های بی نام به شما اجازه می دهد که به سرعت یک شیء را با یک یا چند ویژگی نمونه سازی کنید. این ویژگی ها فقط خواندنی هستند و شما نمی تواند در ادامه کد نویسی؛ ویژگی های بیشتری را اضافه نمایید.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

1 دیدگاه. ارسال دیدگاه جدید

  • با سلام
    برای اسکرپ از سایتهایی مثل tsetmc که اجازه اسکرپ به رباتها نمی دهند، آیا ارسال request به لینک anonymous جوابگو است؟ ممنون می شم در این باره کمی توضیح دهید.

    پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست