C#에서 "with… End with"의 동등성? [복제하다
-
21-08-2019 - |
문제
이 질문은 이미 여기에 답이 있습니다.
- C#에 동등한 블록이 있습니까? 15 답변
나는 c#에 using
키워드이지만 using
객체를 자동으로 처리합니다.
동등성이 있습니까? With...End With
안에 Visual Basic 6.0?
해결책
C#에는 동등한 언어 구성이 없습니다.
다른 팁
동등하지는 않지만이 구문이 당신에게 효과가 있습니까?
Animal a = new Animal()
{
SpeciesName = "Lion",
IsHairy = true,
NumberOfLegs = 4
};
동등한 것은 없지만 구문을 논의하는 것이 흥미로울 수 있다고 생각합니다!
나는 꽤 좋아한다;
NameSpace.MyObject.
{
active = true;
bgcol = Color.Red;
}
다른 제안이 있습니까?
이 언어 기능을 추가하는 것이 어려울 것이라고 생각할 수는 없습니다. 본질적으로 전처리 된 것입니다.
편집하다:
나는이 기능을 기다리는 데 아 sick습니다. 그래서 여기에 비슷한 행동을 달성하는 확장이 있습니다.
/// <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
이게 될 것입니다 씨#:
{
Var q=SomeOtherExpression();
q.SomeProperty = 5;
q.SomeOtherProperty = "Hello";
}
유일한 차이점은 VB에서 식별자에게 이름 "Q"가 없지만 기간이 이전에 다른 식별자없이 발생할 때 사용되는 기본 식별자라는 것입니다.
C#에는 동등한 구조가 없습니다. 이것은 시각적 기본 6.0 /입니다. vb.net 특징.
제휴하지 않습니다 StackOverflow