Is it in any way better to do this

```
char[] sec = { 'a', 'b', 'c'};

SecureString s = new SecureString();
foreach (char c in sec) {
    s.AppendChar(c);
}

IntPtr pointerName = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(s);
String secret = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pointerName);

```

than this

```
String secret = "abc";

```

or this

```
char[] sec = { 'a', 'b', 'c'};
String secret = new Secret(sec);

```

if I want to protect "abc" from beeing detected in decompiled MSIL code?