Jakoś dalej sie ucze c#. Zainstalowałem sobie Visual Studio 2015 Cimmynity. I ćwiczę. W chwilach wolnych. Znalazłem tutorial dla początkujących na MSDN. Console Application, która czyta plik tekstowy i wyświetla go na konsoli, czyli Console.Write
i Colsole.WriteLine
. Dobry przykład, bo upewniłem się, że zrozumiałem yield return
. Ale coś mnie podkusiło. W przykładzie wyświetlany teks jest po indiańsku. no a przecież kto ja jestem - Polak mały i wziąłem sobie tekst polski. I dostałem robaki zamiast ogonków. No i zacząłem wujka pytać, o co chodzi. I znalazłem, że trzeba zastosować Encoding
.
Nawet konkretne przykłady znalazłem. Ale błędami mi sypało. Męczyłem wujka dalej i znalazłem taki przykład: https://msdn.microsoft.com/pl-pl/library/system.text.encoding.getencodings(v=vs.110).aspx. Zrobiłem sobie folder EncodingsList i w nim zawołałem cmd, a tam dotnet new
. Zrobiła się dobrze znana aplikacja konsolowa "Hello word". Przeedytowałem plik Program.cs wstawiając do niego kod z wyżej wspomnianego przykładu, czyli:
using System;
using System.Text;
public class SamplesEncoding {
public static void Main() {
// Print the header.
Console.Write( "CodePage identifier and name " );
Console.Write( "BrDisp BrSave " );
Console.Write( "MNDisp MNSave " );
Console.WriteLine( "1-Byte ReadOnly " );
// For every encoding, get the property values.
foreach( EncodingInfo ei in Encoding.GetEncodings() ) {
Encoding e = ei.GetEncoding();
Console.Write( "{0,-6} {1,-25} ", ei.CodePage, ei.Name );
Console.Write( "{0,-8} {1,-8} ", e.IsBrowserDisplay, e.IsBrowserSave );
Console.Write( "{0,-8} {1,-8} ", e.IsMailNewsDisplay, e.IsMailNewsSave );
Console.WriteLine( "{0,-8} {1,-8} ", e.IsSingleByte, e.IsReadOnly );
}
}
}
a w oknie cmd napisałem dotnet restore a potem dotnet build. Z kupę błedów dostałem:
Microsoft Windows [Wersja 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.
c:\c_proj\EncodingsList>dotnet new
Created new C# project in c:\c_proj\EncodingsList.
c:\c_proj\EncodingsList>dotnet restore
log : Restoring packages for c:\c_proj\EncodingsList\project.json...
log : Writing lock file to disk. Path: c:\c_proj\EncodingsList\project.lock.json
log : c:\c_proj\EncodingsList\project.json
log : Restore completed in 8732ms.
c:\c_proj\EncodingsList>dotnet build
Project EncodingsList (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling EncodingsList for .NETCoreApp,Version=v1.0
C:\Program Files\dotnet\dotnet.exe compile-csc @c:\c_proj\EncodingsList\obj\Debug\netcoreapp1.0\dotnet-compile.rsp returned Exit Code 1
c:\c_proj\EncodingsList\Program.cs(15,44): error CS0117: 'Encoding' does not contain a definition for 'GetEncodings'
c:\c_proj\EncodingsList\Program.cs(15,16): error CS0246: The type or namespace name 'EncodingInfo' could not be found (are you missing a using directive or an a
ssembly reference?)
c:\c_proj\EncodingsList\Program.cs(19,45): error CS1061: 'Encoding' does not contain a definition for 'IsBrowserDisplay' and no extension method 'IsBrowserDispl
ay' accepting a first argument of type 'Encoding' could be found (are you missing a using directive or an assembly reference?)
c:\c_proj\EncodingsList\Program.cs(19,65): error CS1061: 'Encoding' does not contain a definition for 'IsBrowserSave' and no extension method 'IsBrowserSave' ac
cepting a first argument of type 'Encoding' could be found (are you missing a using directive or an assembly reference?)
c:\c_proj\EncodingsList\Program.cs(20,45): error CS1061: 'Encoding' does not contain a definition for 'IsMailNewsDisplay' and no extension method 'IsMailNewsDis
play' accepting a first argument of type 'Encoding' could be found (are you missing a using directive or an assembly reference?)
c:\c_proj\EncodingsList\Program.cs(20,66): error CS1061: 'Encoding' does not contain a definition for 'IsMailNewsSave' and no extension method 'IsMailNewsSave'
accepting a first argument of type 'Encoding' could be found (are you missing a using directive or an assembly reference?)
c:\c_proj\EncodingsList\Program.cs(21,65): error CS1061: 'Encoding' does not contain a definition for 'IsReadOnly' and no extension method 'IsReadOnly' acceptin
g a first argument of type 'Encoding' could be found (are you missing a using directive or an assembly reference?)
Compilation failed.
0 Warning(s)
7 Error(s)
Time elapsed 00:00:00.9333784
c:\c_proj\EncodingsList>
Co zrobiłem źle?