Click here to Skip to main content
12,945,066 members (57,095 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
Say we have a class like this :
public class someclass
{ 
   public string Name;
   public string Address;
   public int Code;
}

Is there a way to create a method like this
public delegate Insert(string Name, string Address, int Code);

Using lambda expressions at design/compile without code/template generation?
Posted 4-Feb-12 0:57am
Mehdi Gholam335.9K
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

I think the answer of VirtualBlackFox will help you at this page :

http://stackoverflow.com/a/1575153[^]

CodeDOM documentation :
http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx[^]

Hope it helps.
  Permalink  
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

Hi,

I think you can use Action [^] and Func[^] predefined delegates.

Using them looks like this:
Func<string,> insert = (Name, Address, Code) => 
		{
			// Do something with Name, Address and Code
			return String.Format("Data inserted:[Name={0}; Address={1}; Code={2}]", Name, Address, Code);
		};
	
	string result = insert("Martin Arapovic", "Split, Croatia", 100);
	
	Console.WriteLine(result);

Actually this can be done in design time, but to use it in runtime I think you will work with ExpressionTrees:
1. http://www.thejoyofcode.com/Lambda_and_Expression_Trees.aspx[^]
2. http://msdn.microsoft.com/en-us/library/bb397951.aspx[^]
3.http://www.abhisheksur.com/2010/09/use-of-expression-trees-in-lamda-c.html[^]
3. http://blogs.msdn.com/b/csharpfaq/archive/2009/09/14/generating-dynamic-methods-with-expression-trees-in-visual-studio-2010.aspx[^]
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 4,781
CHill60 3,135
Maciej Los 2,443
Jochen Arndt 1,910
ppolymorphe 1,765


Advertise | Privacy | Mobile
Web02 | 2.8.170518.1 | Last Updated 4 Feb 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100