2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
C# इत्यस्मिन्, गुणस्य displayName प्राप्तुं विविधरीत्या सम्पादयितुं शक्यते, यत्र विशेषतानां, प्रतिबिम्बस्य, LINQ इत्यस्य च उपयोगः भवति । अधः अहं प्रत्येकं विधिं व्यक्तिगतरूपेण दर्शयिष्यामि विशिष्टं उदाहरणसङ्केतं च प्रदास्यामि ।
गुणं परिभाषयन्ते सति, गुणस्य प्रदर्शननाम निर्दिष्टुं DisplayName विशेषतायाः उपयोगं कर्तुं शक्नुवन्ति । एषा पद्धतिः सरलतमः प्रत्यक्षतमः च अस्ति, तथा च एतादृशानां परिस्थितीनां कृते उपयुक्ता अस्ति यत्र विशेषतायाः परिकल्पने प्रदर्शननाम निर्दिष्टस्य आवश्यकता भवति ।
using System;
using System.ComponentModel;
public class MyModel
{
[DisplayName("Full Name")]
public string Name { get; set; }
}
// 使用
MyModel model = new MyModel();
string displayName = model.Name.DisplayName; // 假设DisplayName特性已经被附加到属性上
नोट्: .NET Core मध्ये DisplayName विशेषता अप्रचलितं स्यात् तथा च भवद्भिः DisplayAttribute इत्यस्य उपयोगः आवश्यकः भवेत् ।
प्रतिबिम्बस्य माध्यमेन, भवान् DisplayAttribute सहितं विशेषतासु इष्टविशेषताः गतिशीलरूपेण प्राप्तुं शक्नोति ।
using System;
using System.ComponentModel;
using System.Reflection;
public class MyModel
{
[Display(Name = "Full Name")]
public string Name { get; set; }
}
// 使用
MyModel model = new MyModel();
string displayName = "";
PropertyInfo propertyInfo = model.GetType().GetProperty("Name");
DisplayAttribute displayAttribute = (DisplayAttribute)propertyInfo.GetCustomAttribute(typeof(DisplayAttribute), false);
if (displayAttribute != null)
{
displayName = displayAttribute.Name;
}
यदि भवतां समीपे गुणसूची अस्ति तथा च विशिष्टप्रदर्शननामयुक्तानां गुणानाम् अन्वेषणं कर्तुम् इच्छति तर्हि प्रश्नप्रक्रियायाः सरलीकरणाय LINQ इत्यस्य उपयोगं कर्तुं शक्नोति ।
using System;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
public class MyModel
{
[Display(Name = "Full Name")]
public string Name { get; set; }
[Display(Name = "Date of Birth")]
public DateTime DateOfBirth { get; set; }
}
// 使用
MyModel model = new MyModel();
string displayName = "";
var attributes = from property in model.GetType().GetProperties()
let displayAttribute = Attribute.GetCustomAttribute(property, typeof(DisplayAttribute)) as DisplayAttribute
where displayAttribute != null
select displayAttribute;
foreach (var attribute in attributes)
{
if (attribute.Name == "Full Name")
{
displayName = attribute.Name;
break;
}
}
1. विशेषतानां उपयोगेन प्रत्यक्षप्रवेशः : १. सरलतमः उपायः अस्ति यत् केवलं DisplayName विशेषतां विशेषतायां योजयितुं शक्यते । एषा विधिः पूर्वमेव विशेषता परिभाषिते प्रदर्शननाम निर्धारयति, तथा च रनटाइम् इत्यत्र अतिरिक्तप्रश्नानां आवश्यकता नास्ति ।
2. प्रतिबिम्बस्य माध्यमेन प्राप्तुं GetCustomAttribute() पद्धतेः उपयोगं कुर्वन्तु: प्रतिबिम्बद्वारा विशेषतायां DisplayAttribute विशेषतां प्राप्नुवन्तु । एषा पद्धतिः गतिशीलरूपेण रनटाइम् इत्यत्र विशेषतासूचनाः प्राप्नोति तथा च अधिकं लचीली भवति, परन्तु प्रत्यक्षतया विशेषतानां अभिगमनस्य अपेक्षया कार्यक्षमतायाः उपरिभागः किञ्चित् अधिकः भवति
3. LINQ प्रश्नस्य उपयोगं कुर्वन्तु: विशिष्टप्रदर्शननामयुक्तानि गुणाः अन्वेष्टुं LINQ मार्गेण गुणसूचीं पृच्छन्तु । एषा पद्धतिः यदा बहुसंख्याकाः विशेषताः सन्ति तदा छानने उपयुक्ता भवति, परन्तु अतीव जटिला भवितुम् अर्हति, सरलपरिदृश्यानां कृते सर्वोत्तमः विकल्पः न भवति ।
प्रत्येकं पद्धतेः स्वस्य प्रयोज्यपरिदृश्यानि सन्ति । वास्तविकविकासे विशिष्टानां आवश्यकतानां, कार्यप्रदर्शनविचारानाञ्च आधारेण सर्वाधिकं उपयुक्तं पद्धतिं चयनं करणीयम् । यदि गुणाः अल्पाः सन्ति तथा च परिभाषासमये प्रदर्शननाम ज्ञायते तर्हि विशेषतानां उपयोगः सरलतमः सरलतमः च उपायः भवति । यदि भवन्तः गतिशीलरूपेण विशेषतासूचनाः प्राप्तुं प्रवृत्ताः सन्ति, अथवा बहवः विशेषताः सन्ति, तर्हि प्रतिबिम्बस्य अथवा LINQ इत्यस्य उपयोगः अधिकं उपयुक्तः भवितुम् अर्हति ।