왜 이런가요? 나는 을 찾을 것이고 내 클래스 중 하나에서만 사용되도록 잠겨있는 확장 메서드를 사용할 수있게되어서 기쁩니다. 정말 모든 곳에서 사용되는 특정 확장 메서드를 갖고 싶어 ... 그리고 그들은 그렇게 일반 정적 방법보다 훨씬 좋네요 보지 마십시오 : P중첩 된 정적 클래스에서 확장 메서드를 사용할 수 없습니까?
설명의 경우 :
나는이 확장 방법을 원하는 이유가 있기 때문이다 나는 DataGridView가있는 Form을 확장하고있다. 그리고 나는이 같은 라인의 매우 피곤하고 있습니다 :
foreach(var row in grid.Rows.OfType<DataGridViewRow>().Where(r => (bool) r.Cells[checkBoxColumn.Index].Value))
foreach(var row in grid.SelectedRows.OfType<DataGridViewRow>().Where(r => (bool) r.Cells[checkBoxColumn.Index].Value))
난 그냥 즉
foreach(var row in grid.Rows.CheckedRows())
foreach(var row in grid.SelectedRows.CheckedRows())
그래서 할 수 있도록 확장 방법을 하시겠습니까,이 확장 방법은 전혀 도움이되지 않을 것 이 수업 외부. 그러나 코드를 훨씬 더 깔끔하게 만듭니다. 당연히 규칙적인 방법도 만들 수 있습니다. 이것이 가능하지 않았기 때문에 제가 끝내었던 것입니다.
나는 누군가가 확장 메서드를 사용할 수있는 곳에 이러한 제한을두기로 결정한 이유에 대해 좋은 논쟁이 있었는지를 알고 싶어했습니다. 정적 클래스에 있어야합니다.은 완전히 의미가 있습니다. 중첩 된 정적 클래스에있을 수 없습니다. 적어도 ...
그런 대답 중 어느 것도 할 수없는 좋은 기술적 이유가 없습니다. –
당신처럼, 나는 확장 메서드 구문을 선호한다. SomeThing.HasSomeCondition()은 HasSomeCondition (SomeThing)보다 월등합니다. – Mir