2012-09-10 60 views
1

假設我有以下結構:映射C#屬性到一個數據成員的屬性

public class Inner 
{ 
    public double Foo { get; set; } 
} 

public class Outer 
{ 
    public double Bar { get; set; } 

    private Inner MyInner; 
} 

我想Outer自動轉發到BarMyInner.Foo。有沒有語法快捷方式?我寧可不輸入

public double Bar 
{ 
    get 
    { 
     return MyInner.Foo; 
    } 
    set 
    { 
     MyInner.Foo = value; 
    } 
} 

所有的時間。我公司的代碼風格指南需要所有大括號的換行符,而我的班級有幾個這樣的成員。

+0

我不認爲它比沒有包含automapper庫的開銷更簡單。 –

回答

1

這幾乎是你怎麼做的,而且沒有任何語法糖來縮短它。就編碼慣例而言,我會推回去;像「所有代碼塊大括號都必須有換行符」這樣的非常寬泛的規則只是在等待一些非常簡單的事情,例如這種情況變成空白混亂。但是,如果你無法說服他們做出例外,那麼說實話,不值得讓自己開除;無論如何,ReSharper和其他重構助手都會讓你的物業看起來像這樣。

+0

這不是那麼嚴格。我最終可能會將他們縮短爲單線...... – japreiss

+0

@Lucero - 他可以單線排除屬性並消除他的第二個代碼塊的11行中的10個。至少他可以讓吸氣者和二傳手一線。問題在於,OP的公司強制使用Allman風格,這讓他想知道是否有某些東西不需要6條大括號。 – KeithS

1

不,沒有辦法用自動屬性來做到這一點。但是對於代碼片段,您應該能夠快速編寫該代碼。如果你像我一樣養成摺疊代碼(Ctrl + M + O)的習慣,那看起來也不算太壞。