برنامه نویسی

C# پیشرفته: درک انواع ناشناس

Summarize this content to 400 words in Persian Lang
توضیحات متا: در مورد انواع ناشناس در C# بیاموزید، روشی مناسب برای گروه بندی داده های موقت بدون ایجاد کلاس های جدید. این مقاله نحوه ایجاد و استفاده از انواع ناشناس، مزایا، محدودیت‌های آنها و مثالی برای درک بهتر را پوشش می‌دهد.

هنگام کار با سی شارپ، مواقعی وجود دارد که باید مجموعه ای از ویژگی های مرتبط را برای استفاده موقت در یک متد با هم گروه بندی کنید. در چنین سناریوهایی، ایجاد یک کلاس اختصاصی می تواند غیر ضروری باشد. اینجاست که انواع ناشناس وارد بازی شوید—روشی راحت برای گروه بندی داده ها بدون ایجاد کلاس جدید.

انواع ناشناس چیست؟

انواع ناشناس ساختارهای داده ای سبک وزن و فقط خواندنی هستند که به شما امکان می دهند بدون اعلام صریح کلاس، داده ها را تعریف کرده و با آنها کار کنید. آنها موقتی هستند، به این معنی که فقط برای استفاده در روشی که در آن ایجاد شده اند در نظر گرفته شده اند.

نحوه ایجاد یک نوع ناشناس

شما می توانید یک نوع ناشناس با استفاده از new کلمه کلیدی به دنبال آن یک اولیه ساز شی. در اینجا یک مثال است:

var bookInfo = new { Title = “C# in Depth”, Author = “Jon Skeet”, Price = 45.99 };

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، یک نوع ناشناس با سه ویژگی ایجاد می شود: Title، Author، و Price. کامپایلر به طور خودکار یک کلاس موقت در پشت صحنه ایجاد می کند و مقادیر را به عنوان ویژگی های فقط خواندنی تنظیم می کند.

انواع ناشناس در عمل: یک مثال جدید

تصور کنید در حال کار بر روی یک پلتفرم تجارت الکترونیک هستید که نیاز به نمایش خلاصه ای از فروش محصول دارد. به جای ایجاد یک کلاس جدید برای این نمای موقت، می توانید از یک نوع ناشناس استفاده کنید:

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
static void Main()
{
var salesData = new List<Product>
{
new Product { Id = 1, Name = “Laptop”, Quantity = 10, Price = 800.0 },
new Product { Id = 2, Name = “Smartphone”, Quantity = 5, Price = 500.0 },
new Product { Id = 3, Name = “Tablet”, Quantity = 8, Price = 300.0 }
};

var summary = salesData.Select(p => new
{
ProductName = p.Name,
TotalRevenue = p.Quantity * p.Price
});

foreach (var item in summary)
{
Console.WriteLine($”Product: {item.ProductName}, Total Revenue: {item.TotalRevenue}”);
}
}
}

class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int Quantity { get; set; }
public double Price { get; set; }
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح

ما یک لیست از Product اشیاء نشان دهنده داده های فروش
با استفاده از LINQ، یک نوع ناشناس ایجاد می کنیم تا فقط نام محصول و کل درآمد آن را نشان دهیم.
را Select() متد یک نوع ناشناس با خصوصیات تولید می کند ProductName و TotalRevenue.
سپس داده های پیش بینی شده را تکرار می کنیم و آن را چاپ می کنیم.

کد بالا یک مورد استفاده کلاسیک برای انواع ناشناس است، که در آن باید داده ها را به طور موقت بدون ایجاد کلاس جدید گروه بندی کنید.

ویژگی های کلیدی انواع ناشناس

ویژگی های فقط خواندنی: ویژگی ها در انواع ناشناس فقط خواندنی هستند و فقط در زمان اولیه تنظیم می شوند.

برابری مبتنی بر ارزش: دو نوع ناشناس با نام ها و مقادیر یکسان در هنگام استفاده از آن برابر در نظر گرفته می شوند Equals() روش

بدون روش: انواع ناشناس نمی توانند متد داشته باشند. آنها فقط برای نگهداری داده ها هستند.

محدودیت های انواع ناشناس

محدوده محدود: شما نمی توانید انواع ناشناس را از متدها برگردانید یا از آنها خارج از محدوده ایجاد آنها استفاده کنید.

پشتیبانی بدون روش: شما نمی توانید روش هایی را در انواع ناشناس تعریف کنید و آنها را به ذخیره سازی داده محدود کنید.

زمان استفاده از انواع ناشناس

تبدیل داده ها: انواع ناشناس هنگام کار با LINQ برای تبدیل داده ها عالی هستند.

گروه بندی داده های موقت: زمانی که نیاز به گروه بندی سریع ویژگی ها برای استفاده کوتاه مدت در یک روش دارید، از انواع ناشناس استفاده کنید.

زمانی که از انواع ناشناس استفاده نکنید

اگر قرار است ساختار داده خارج از روش فعلی استفاده شود، به جای آن یک کلاس جدید ایجاد کنید.
اگر ساختار داده رفتار یا منطق پیچیده ای دارد، استفاده از یک کلاس کامل یا ساختار انتخاب بهتری است.

نتیجه گیری

انواع ناشناس راه قدرتمندی برای مدیریت تبدیل و پیش بینی داده های موقت در سی شارپ ارائه می دهند که کد شما را ساده تر و مختصرتر می کند. با استفاده از آنها با LINQ، می توانید پردازش داده ها را بدون پیچیدگی غیر ضروری ساده کنید.

توضیحات متا: در مورد انواع ناشناس در C# بیاموزید، روشی مناسب برای گروه بندی داده های موقت بدون ایجاد کلاس های جدید. این مقاله نحوه ایجاد و استفاده از انواع ناشناس، مزایا، محدودیت‌های آنها و مثالی برای درک بهتر را پوشش می‌دهد.

هنگام کار با سی شارپ، مواقعی وجود دارد که باید مجموعه ای از ویژگی های مرتبط را برای استفاده موقت در یک متد با هم گروه بندی کنید. در چنین سناریوهایی، ایجاد یک کلاس اختصاصی می تواند غیر ضروری باشد. اینجاست که انواع ناشناس وارد بازی شوید—روشی راحت برای گروه بندی داده ها بدون ایجاد کلاس جدید.

انواع ناشناس چیست؟

انواع ناشناس ساختارهای داده ای سبک وزن و فقط خواندنی هستند که به شما امکان می دهند بدون اعلام صریح کلاس، داده ها را تعریف کرده و با آنها کار کنید. آنها موقتی هستند، به این معنی که فقط برای استفاده در روشی که در آن ایجاد شده اند در نظر گرفته شده اند.

نحوه ایجاد یک نوع ناشناس

شما می توانید یک نوع ناشناس با استفاده از new کلمه کلیدی به دنبال آن یک اولیه ساز شی. در اینجا یک مثال است:

var bookInfo = new { Title = "C# in Depth", Author = "Jon Skeet", Price = 45.99 };
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، یک نوع ناشناس با سه ویژگی ایجاد می شود: Title، Author، و Price. کامپایلر به طور خودکار یک کلاس موقت در پشت صحنه ایجاد می کند و مقادیر را به عنوان ویژگی های فقط خواندنی تنظیم می کند.

انواع ناشناس در عمل: یک مثال جدید

تصور کنید در حال کار بر روی یک پلتفرم تجارت الکترونیک هستید که نیاز به نمایش خلاصه ای از فروش محصول دارد. به جای ایجاد یک کلاس جدید برای این نمای موقت، می توانید از یک نوع ناشناس استفاده کنید:

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        var salesData = new List<Product>
        {
            new Product { Id = 1, Name = "Laptop", Quantity = 10, Price = 800.0 },
            new Product { Id = 2, Name = "Smartphone", Quantity = 5, Price = 500.0 },
            new Product { Id = 3, Name = "Tablet", Quantity = 8, Price = 300.0 }
        };

        var summary = salesData.Select(p => new 
        {
            ProductName = p.Name,
            TotalRevenue = p.Quantity * p.Price
        });

        foreach (var item in summary)
        {
            Console.WriteLine($"Product: {item.ProductName}, Total Revenue: {item.TotalRevenue}");
        }
    }
}

class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Quantity { get; set; }
    public double Price { get; set; }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح

  1. ما یک لیست از Product اشیاء نشان دهنده داده های فروش
  2. با استفاده از LINQ، یک نوع ناشناس ایجاد می کنیم تا فقط نام محصول و کل درآمد آن را نشان دهیم.
  3. را Select() متد یک نوع ناشناس با خصوصیات تولید می کند ProductName و TotalRevenue.
  4. سپس داده های پیش بینی شده را تکرار می کنیم و آن را چاپ می کنیم.

کد بالا یک مورد استفاده کلاسیک برای انواع ناشناس است، که در آن باید داده ها را به طور موقت بدون ایجاد کلاس جدید گروه بندی کنید.

ویژگی های کلیدی انواع ناشناس

  • ویژگی های فقط خواندنی: ویژگی ها در انواع ناشناس فقط خواندنی هستند و فقط در زمان اولیه تنظیم می شوند.
  • برابری مبتنی بر ارزش: دو نوع ناشناس با نام ها و مقادیر یکسان در هنگام استفاده از آن برابر در نظر گرفته می شوند Equals() روش
  • بدون روش: انواع ناشناس نمی توانند متد داشته باشند. آنها فقط برای نگهداری داده ها هستند.

محدودیت های انواع ناشناس

  • محدوده محدود: شما نمی توانید انواع ناشناس را از متدها برگردانید یا از آنها خارج از محدوده ایجاد آنها استفاده کنید.
  • پشتیبانی بدون روش: شما نمی توانید روش هایی را در انواع ناشناس تعریف کنید و آنها را به ذخیره سازی داده محدود کنید.

زمان استفاده از انواع ناشناس

  • تبدیل داده ها: انواع ناشناس هنگام کار با LINQ برای تبدیل داده ها عالی هستند.
  • گروه بندی داده های موقت: زمانی که نیاز به گروه بندی سریع ویژگی ها برای استفاده کوتاه مدت در یک روش دارید، از انواع ناشناس استفاده کنید.

زمانی که از انواع ناشناس استفاده نکنید

  • اگر قرار است ساختار داده خارج از روش فعلی استفاده شود، به جای آن یک کلاس جدید ایجاد کنید.
  • اگر ساختار داده رفتار یا منطق پیچیده ای دارد، استفاده از یک کلاس کامل یا ساختار انتخاب بهتری است.

نتیجه گیری

انواع ناشناس راه قدرتمندی برای مدیریت تبدیل و پیش بینی داده های موقت در سی شارپ ارائه می دهند که کد شما را ساده تر و مختصرتر می کند. با استفاده از آنها با LINQ، می توانید پردازش داده ها را بدون پیچیدگی غیر ضروری ساده کنید.

نوشته های مشابه

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

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

دکمه بازگشت به بالا