2012-03-20 3 views
6

내 페이지로드에서 ReturnStuff() 번을 한 번 또는 3 번 호출합니까? 3 번 부르면 더 효율적인 방법이 있습니까?목록을 올바르게 사용하고 있습니까?

protected void Page_Load(object sender, EventArgs e) 
{ 
    string thing1 = ReturnStuff(username,password)[0]; 
    string thing2 = ReturnStuff(username, password)[1]; 
    string thing3 = ReturnStuff(username, password)[2]; 
} 

public static List<string> ReturnStuff(string foo, string bar) 
{ 

    // Create a list to contain the attributes 
    List<string> Stuff = new List<string>(); 

    // Some process that determines strings values based on supplied parameters 

    Stuff.Add(fn); 
    Stuff.Add(ln); 
    Stuff.Add(em); 

    return Stuff; 
} 
+1

3 번이나 전화를 걸 었는지 여부를 묻습니다. –

+1

네, 그게 어떻게 더 효율적으로 할 수 있습니다. – mmcglynn

답변

13

세 번 부릅니다. 당신은 이름, 성, 이메일이있는 경우

protected void Page_Load(object sender, EventArgs e) 
{ 
    var stuff = ReturnStuff(username,password); 
    string thing1 = stuff[0]; 
    string thing2 = stuff[1]; 
    string thing3 = stuff[2]; 
} 

그러나 그 이상, 내가 이름을 구성하는 객체를 반환하는 함수를 작성합니다, 성과 이름 : 여기에 더 효율적인 방법입니다 , 이메일 :

public class User 
{ 
    public string LastName {get;set;} 
    public string FirstName {get;set;} 
    public string EMail {get;set;} 
} 

public static User GetUser(string username, string password) 
{ 
    // Some process that determines strings values based on supplied parameters 

    return new User() {FirstName=fn, LastName=ln, EMail=em}; 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    var user = GetUser(username,password); 
} 
+0

저격 해, 저격 해 ... – squillman

+0

와우, 그건 내 n00b 머리 주위를 감싸는 것이니까, 고마워! – mmcglynn

+0

@ mmcglynn : 목록을 처음으로 반환하는 부분에 집중할 수 있습니다. :) – BoltClock

1

당신은 그것을 3 번이나 부릅니다. 한 번 호출하고 결과를 변수에 저장하면 해당 변수로 작업 할 수 있습니다.

이 시도 :

var stuff = ReturnStuff(username,password); 
string thing1 = stuff[0]; 
string thing2 = stuff[1]; 
string thing3 = stuff[2]; 
+0

왜 변형을 사용하고 있습니까? 여기에 어떤 의미가 있니? 왜 강한 타입이 아닌가? – Pankaj

+2

@Pankaj Garg : Erm, "variant"? – BoltClock

+0

나는 코드에서 신호 대 잡음 비율을 줄이기 위해 var를 사용한다. 항상 적절한 것은 아니며 언제나 좋은 아이디어는 아닙니다. 이것을 읽으십시오. http://stackoverflow.com/questions/41479/use-of-var-keyword-in-c-sharp – squillman

1

3 번. 다음 코드는 입니다. Main 함수로 가서 거기에서 func()를 호출하십시오.

class howmanytimescallingafunction 
    { 
     public static int i = 0; 
     public List<string> fun() 
     { 
      List<string> list = new List<string> { "A", "B", "C" }; 
      i++; 
      return list; 
     } 
     public void func() 
     { 
      Console.WriteLine(fun()[0]); 
      Console.WriteLine(i); 
      Console.WriteLine(fun()[1]); 
      Console.WriteLine(i); 
      Console.WriteLine(fun()[2]); 
      Console.WriteLine(i); 
     } 
    } 

당신은 로컬 목록 <> 변수에 반환 값을 얻을 한 번 그 함수를 호출 한 다음 변수를 사용하여 액세스해야합니다. like :

List<string> list = function-that-returns-List<string>(); 
list[0]; //Do whatever with list now. 
관련 문제