//
-// System.IO.TextWriter
+// System.IO.TextWriter.cs
//
// Authors:
// Marcin Szczepanski (marcins@zipworld.com.au)
using System.Text;
+#if NET_2_0
+using System.Runtime.InteropServices;
+#endif
+
namespace System.IO {
[Serializable]
+#if NET_2_0
+ [ComVisible (true)]
+#endif
+#if NET_2_1
+ public abstract class TextWriter : IDisposable {
+#else
public abstract class TextWriter : MarshalByRefObject, IDisposable {
+#endif
protected TextWriter() {
CoreNewLine = System.Environment.NewLine.ToCharArray ();
Dispose (true);
}
- protected virtual void Dispose (bool disposing) { }
-
+ protected virtual void Dispose (bool disposing)
+ {
+ if (disposing){
+ // If we are explicitly disposed, we can avoid finalization.
+ GC.SuppressFinalize (this);
+ }
+ }
+#if NET_2_0
+ public void Dispose ()
+ {
+ Dispose (true);
+
+ // If we are explicitly disposed, we can avoid finalization.
+ GC.SuppressFinalize (this);
+ }
+#else
void System.IDisposable.Dispose () {
Dispose (true);
}
+#endif
public virtual void Flush()
// Do nothing
}
- public virtual void Write (char[] value)
+ public virtual void Write (char[] buffer)
{
- if (value != null) {
- for (int i = 0; i < value.Length; ++i)
- Write (value [i]);
- }
+ if (buffer == null)
+ return;
+ Write (buffer, 0, buffer.Length);
}
public virtual void Write (decimal value)
WriteLine();
}
- public virtual void WriteLine (char[] value)
+ public virtual void WriteLine (char[] buffer)
{
- Write (value);
+ Write (buffer);
WriteLine();
}
}
}
}
-
-
-
-
-