Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Best way to re-factor
Message
From
14/02/2013 13:05:28
 
 
To
14/02/2013 12:31:01
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Environment versions
Environment:
C# 4.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01565967
Message ID:
01566036
Views:
50
>>>>>>>>It actually also needed closeSalespoint and closeOperator. I sent both as out parameters but I was thinking I may create the above as a class instead with these properties. Do you think it will be a better solution or 4 out parameters is not bad?
>>>>>>>
>>>>>>>
>>>>>>>Dunno - there are several ways
>>>>>>>
>>>>>>>Viv's personal limit is about 5
>>>>>>>Another option mentioned is to have the method return a Tuple - only inconvenience of a tuple is that the properties do not have meaningful names
>>>>>>>
>>>>>>>Another option suggested is to create a class. I would opt for a private nested class in that case
>>>>>>
>>>>>>Can you show how the private nested class idea looks like, please?
>>>>>>
>>>>>It;s just a class declaration within a class.
>>>>>
>>>>>	class TheClass
>>>>>	{
>>>>>		public void Work()
>>>>>		{
>>>>>
>>>>>			PrivateClass hello = new PrivateClass();
>>>>>
>>>>>			hello.DoWork(); // with parameters needed
>>>>>			Console.WriteLine("{0} {1}", hello.StartTime, hello.EndTime);
>>>>>			Console.ReadLine();
>>>>>
>>>>>		}
>>>>>		private class PrivateClass
>>>>>		{
>>>>>			public DateTime StartTime { get; private set; }
>>>>>			public DateTime EndTime { get; private set; }
>>>>>
>>>>>			public void DoWork()
>>>>>			{
>>>>>				StartTime = DateTime.Now;
>>>>>				EndTime = DateTime.Now;
>>>>>			}
>>>>>
>>>>>		}
>>>>>
>>>>>	}
>>>>>	
>>>>>
>>>>
>>>>I see, thanks a lot - this may be very useful for me.
>>>
>>>I don't think it's much of a difference. It's just a different means of accessibility to a class. What's in the class is still the same. You instantiate it the same way and use it the same way. All that changes is where the PM finds it.
>>
>>Not really true Mike.
>>An nested private class in not available outside the class.
>>In the above example this would not compile:
>>var = new TheClass.PrivateClass().
>>It *would* work if the inner class was public.
>>
>
>
>> Also a nested class has access to members of the containing class.....
>
>I think the members of the containing class have to be static - or you need to pass an object reference

I was thinking of this : http://msdn.microsoft.com/en-gb/library/ms173120.aspx

Also possible:
 internal class Program
  {
    private static void Main()
    {
      Container.Nested nested = new Container.Nested();
      int i = nested.GetI();
    }
  }

  public class Container
  {
    private int i;
    public class Nested
    {
      public int GetI()
      {
        Container c = new Container();
        return c.i;
      }
    }
  }
Not that I can think of a use for it :-}
Previous
Reply
Map
View

Click here to load this message in the networking platform