Lærte noget nyt om arv i dag…

Da jeg sad og skulle implementere et design, kom der en ide op omkring en variabel der skulle udbydes af en abstrakt klasse, for derefter at blive assignet i den nedarvende klasse.
Under selve implementeringen finder jeg på at gøre variablen readonly, men finder ud a at det ikke kan lade sig gøre.
Jeg troede, at så længe jeg assignede variablen i en konstruktør, var der ingen is på koen. Men der skulle jeg så lære noget nyt 🙂

Eksemplificeret ved følgende blok:

     public class Foo
     {
         protected readonly string setInSubClass;
         private readonly string setInBase;
         protected Foo()
         {
             setInBase = "base" ;
         }
     }
     public class Bar : Foo
     {
         public Bar() : base ()
         {
             setInSubClass = "subclass" ;
         }
     }
 }

Men visual studio skulle vise sig at kende til en begrænsning jeg ikke kendte (det er ikke første gang). Se screensnip:

Og tilhørende build fejl:

Loading

string.Format og ‘{…}’

Nu er jeg rendt ind i samme problem et par gange, og satte mig for at løse det på den pæne måde denne gang.
Scenariet er det, at jeg gerne vil opbygge en streng vha. string.Format(…) ell. StringBuilder.AppendFormat(…). Såfremt parametrene indeholdt tuborg-parenteser (curlybraces, {}) modtager man en exception om at formateringen ikke er korrekt.
Rettere er fejlbeskeden man modtager: “Input string was not in a correct format.”

Vi eksemplificerer

System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();
string strFormat = @”
SELECT
{[Measures].[Unit Price]} ON COLUMNS,
DISTINCT( {{0}.siblings} ) ON ROWS
FROM [Sales]
;
string strValue = @”
[Products].[Product Name].&[Spegesild],
[Products].[Product Name].&[Longlife Tofu],
[Products].[Product Name].&[Filo Mix]”
;
strBuilder.AppendFormat( strFormat, strValue );

Det springende punkt er hvordan parseren fortolker DISTINCT( {{0}.siblings} ) ON ROWS

For det skal virke, må DISTINCT( {{0}.siblings} ) ON ROWS blive til DISTINCT( {{{0}.siblings}} ) ON ROWS

Således må det endelige udtryk der fungerer blive til 

System.Text.StringBuilder strBuilder = new System.Text.StringBuilder();
string strFormat =
@”
SELECT

{[Measures].[Unit Price]} ON COLUMNS,
DISTINCT( {{{0}.siblings}} ) ON ROWS
FROM [Sales]
;
string strValue =
@”
[Products].[Product Name].&[Spegesild],
[Products].[Product Name].&[Longlife Tofu],
[Products].[Product Name].&[Filo Mix]”
;

strBuilder.AppendFormat( strFormat, strValue );

Loading

ALT + 255 og System.Web.UI.DropDownList

Længe har jeg ledt efter en løsning på følgende problem.
Man har ét stk. System.Web.UI.WebControls.DropDownList i .Net hvor man gerne vil præsentere et hierarki.
F.eks.
Gruppe 1
  Undergruppe 1
    Underundergruppe 1
  Undergruppe 2
    Underundergruppe 2

Problemet med System.Web.UI.WebControls.DropDownList er, at klassen åbenbart er implmenteret med ‘trim’, så den fjerner mellemrum. Men det kan man komme uden om ved, i stedet for mellemrum at benytte sig af ALT + 255, ALT + 0160 skulle vist også virke.

Loading

MCP 70-316

Developing and Implementing Windows-based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET

Ja, det var så det sidste skud på stammen over de certificeringer jeg har taget i 2006. Det bliver nok ikke til flere i år, men jeg regner stærkt med at der ikke skal været gået meget af det kommende år før MCP 70–300: Analyzing Requirements and Defining Microsoft .NET Solution Architectures skal i hus.

Hvad der så skal ske derefter er jeg lidt i tvivl om. Men én af to grene tror jeg jeg vil forfølge. 1. MCPD Microsoft Certified Professional Developer, hvilket svarer til at boppe den snarligt kommende MCSD op til .Net 2.0 platformen. eller 2. MCTS: Business Intelligence. Sidstnævnte tests er endnu ikke på markedet, så derfor vil det måske virke lidt kækt at gå efter noget man ikke ved hvad er…
“Man skal klappe den blinde frø, før hunden har skidt en bjørn”, siger det gamle ordsprog jo 🙂

Loading

Lamo Transcender test

Ja, jeg sidder lige og forbereder mig på morgendagens strabadser, hvor jeg skal op til endnu en certificering hos Microsoft. Til min assistance har min arbejdsgiver givet mig et ellers udemærket produkt fra Transcender, i form af et program der emulerer en eksamen.
Jeg har brugt samme produkt til at bestå de tidligere certificeringer jeg har været oppe til, og har egentlig syntes at det var ganske fornuftigt. Lige indtil i aften. Jeg er tidligere stødt ind i nogen finurlige spørgsmål, hvor man tænker “Ok, det kan være Hans som Grethe hvad jeg svarer her”. Toppen af kransekagen (indtil nu) kom dog i aften. Jeg vedhæfter lige et billede, så man for selvsyn kan se ligegyldigheden. Det skal måske lige nævnes at det nok er forbeholdt folk med branchekendskab 😉

Loading