पुराने प्रारूप:सी # 7 टपल और async
private async Task<Tuple<SomeArray[], AnotherArray[], decimal>>
GetInvoiceDetailAsync(InvoiceHead invoiceHead) { ... }
आप कर सकते हैं कैसे है कि सी # 7 नए tuples प्रारूप के साथ में?
पुराने प्रारूप:सी # 7 टपल और async
private async Task<Tuple<SomeArray[], AnotherArray[], decimal>>
GetInvoiceDetailAsync(InvoiceHead invoiceHead) { ... }
आप कर सकते हैं कैसे है कि सी # 7 नए tuples प्रारूप के साथ में?
चरण 1: अपनी परियोजना में ValueTuple nuget पैकेज जोड़ें।
चरण 2:
private async Task<(SomeArray[], AnotherArray[], decimal)>GetInvoiceDetailAsync(
InvoiceHead invoiceHead)
{
...
return (x, y, z);
}
नोट यद्यपि कि आप भी तो उन टपल आइटम के लिए नाम जोड़ सकते हैं की तर्ज पर: के रूप में लुकास ने अपना टिप्पणी में कहते हैं, के लिए वाक्य रचना बदल
private async Task<(SomeArray[] x, AnotherArray[] y, decimal z)>GetInvoiceDetailAsync(
InvoiceHead invoiceHead)
{
...
return (x, y, z);
}
और फिर आप उन्हें Item1
, Item2
और Item3
के बजाय उन नामों के रूप में एक्सेस कर सकते हैं।
क्या आप जेनेरिक तर्क भी नहीं बदलना चाहिए जिसमें अब 'टुपल <>' कथन शामिल नहीं है? – Icepickle
@Icepickle, अब मैं उलझन में हूं क्योंकि मैंने सोचा कि मैंने ऐसा किया है। पेस्ट त्रुटि कॉपी करें, मुझे लगता है कि
> "ध्यान दें कि फिर भी आप उन tuple आइटम्स में नाम जोड़ सकते हैं" मैंने कोशिश की, लेकिन 'टास्क 'के लिए' .Wait() 'के बाद नामित फ़ील्ड के बजाय केवल' आइटम 1' /' Item2' ' सार्वजनिक एसिंक स्थिर कार्य <(स्ट्रिंग स्थिति, टी परिणाम)> GetObjectAsync
'कार्य <(कुछअरे [], एक और ऐरे [], दशमलव)>' –