Code:
#include "stdafx.h"

using namespace System;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::IO;
using namespace System::Text;

void main(void)
{
	Stream^ fS = gcnew FileStream("D:\\TextOut.txt", FileMode::Create, FileAccess::Write);

	StreamWriter^ sWriter = gcnew StreamWriter(fS);

	Console::WriteLine("Encoding type : " + sWriter->Encoding->ToString());

	Console::WriteLine("Format Provider : " + sWriter->FormatProvider->ToString());

	sWriter->WriteLine("Today is {0}", DateTime::Today.DayOfWeek);
	sWriter->WriteLine("Today we will mostly be using StreamWriter");

	for (int i = 0; i < 5; i++)
		sWriter->WriteLine("Value {0}, its square is {1}", i, i * i);

	sWriter->Write("Arrays can be written : ");
	// here if I declare the array as 'array<char>', then comes an error
	array<System::Char>^ myArray = gcnew array<System::Char>(5) { 'a', 'r', 'r', 'a', 'y' };

	sWriter->Write(myArray);
	sWriter->WriteLine("\r\nAnd parts of arrays can be written too");
	// the error comes up here
	sWriter->Write(myArray, 0, 3);

	sWriter->Close();
	fS->Close();
}
The error is
Code:
error C2664: 'void System::IO::TextWriter::Write(cli::array<Type,dimension> ^,int,int)' : cannot convert parameter 1 from 'cli::array<Type> ^' to 'cli::array<Type,dimension> ^'.
And there is one more thing,

the Write() method for StreamWriter have only four overloads, but in MSDN it shows more than it 17... Why whats wrong here?