반응형
"위드..."와 동등함C#의 "끝"?
나는 C#이 다음을 가지고 있다는 것을 알고 있습니다.using
키워드, 하지만using
개체를 자동으로 폐기합니다.
의 동등성이 있습니까?With...End With
Visual Basic 6.0에서?
동등하지는 않지만, 이 구문이 당신에게 효과가 있을까요?
Animal a = new Animal()
{
SpeciesName = "Lion",
IsHairy = true,
NumberOfLegs = 4
};
C#에는 이와 동등한 언어 구조가 없습니다.
동등한 것은 없지만, 구문을 논의하는 것은 흥미로울 수 있다고 생각합니다!
나는 꽤 좋아합니다;
NameSpace.MyObject.
{
active = true;
bgcol = Color.Red;
}
다른 제안은 없습니까?
이 언어 기능을 추가하는 것이 어려울 것이라고는 상상할 수 없습니다. 본질적으로 사전 처리된 것에 불과합니다.
편집:
이 기능을 기다리는 것이 지겨웠기 때문에 유사한 동작을 수행하는 확장 기능이 여기 있습니다.
/// <summary>
/// C# implementation of Visual Basics With statement
/// </summary>
public static void With<T>(this T _object, Action<T> _action)
{
_action(_object);
}
용도;
LongInstanceOfPersonVariableName.With(x => {
x.AgeIntVar = 21;
x.NameStrVar = "John";
x.NameStrVar += " Smith";
//etc..
});
편집: 흥미롭게도 누군가가 이 "해결책"으로 저를 또 한 번 때린 것 같습니다.오, 그럼..
다음 VB와 동등하다고 생각합니다.
With SomeObjectExpression()
.SomeProperty = 5
.SomeOtherProperty = "Hello"
End With
C#일 경우:
{
Var q=SomeOtherExpression();
q.SomeProperty = 5;
q.SomeOtherProperty = "Hello";
}
유일한 실질적인 차이점은 vb에서 식별자는 "q"라는 이름을 가지지 않고 단순히 어떤 기간 이전에 다른 식별자가 없을 때 사용되는 기본 식별자라는 것입니다.
With...에 해당하는 것은 없습니다.C#으로 끝냅니다.
다음은 Visual Basic과 C#의 차이점을 보여주는 비교 차트입니다.
C#에는 동등한 구조가 없습니다.Visual Basic 6.0 / VB입니다.NET 기능.
언급URL : https://stackoverflow.com/questions/1063429/equivalence-of-with-end-with-in-c
반응형
'programing' 카테고리의 다른 글
Windows에서 Git:병합 도구는 어떻게 설정합니까? (0) | 2023.05.16 |
---|---|
윈도우즈 cmd stdout 및 stderr을 단일 파일로 리디렉션하는 방법은 무엇입니까? (0) | 2023.05.16 |
Process.start: 출력을 얻는 방법은 무엇입니까? (0) | 2023.05.16 |
몽구스 findOne 사용법 (0) | 2023.05.16 |
이전 지점에서 체크아웃할 수 있는 방법이 있습니까? (0) | 2023.05.16 |