[Mono-list] GTK# Patch for TreeStore, ListStore, and TextIter
Daniel Morgan
danmorg@sc.rr.com
Thu, 21 Nov 2002 14:31:49 -0500
However, params can work like you mentioned. It was a misunderstanding of
params on my part.
Originally, I thought params could only be used for variable arguments.
However, it can also be used to pass the values as an array too.
Here is a test program that demonstrates this:
using System;
public class ParamsTest {
public ParamsTest (params int[] args)
{
Console.WriteLine("\tParamsTest");
for (int a = 0; a < args.Length; a++) {
int arg = args[a];
string result = "\t\tArgs[" + a.ToString() + "] = " + args[a].ToString();
Console.WriteLine (result);
}
}
}
public class TestParamsDriver
{
public static void Main(string[] args)
{
Console.WriteLine("Variable args");
ParamsTest pt1 = new ParamsTest (1);
ParamsTest pt2 = new ParamsTest (2,3);
ParamsTest pt3 = new ParamsTest (4,5,6);
ParamsTest pt4 = new ParamsTest (7,8,9,10);
Console.WriteLine("Array of args");
int numberOfArgs = 5;
int start = 11;
int[] theArgs = new int[numberOfArgs];
for (int p = 0; p < numberOfArgs; p++) {
theArgs[p] = start + p;
}
ParamsTest pt5 = new ParamsTest (theArgs);
Console.WriteLine("Done.");
}
}
This is what it displays:
DanielMorgan@DANPC ~
$ mcs TestParams.cs
Compilation succeeded
DanielMorgan@DANPC ~
$ mono TestParams.exe
Variable args
ParamsTest
Args[0] = 1
ParamsTest
Args[0] = 2
Args[1] = 3
ParamsTest
Args[0] = 4
Args[1] = 5
Args[2] = 6
ParamsTest
Args[0] = 7
Args[1] = 8
Args[2] = 9
Args[3] = 10
Array of args
ParamsTest
Args[0] = 11
Args[1] = 12
Args[2] = 13
Args[3] = 14
Args[4] = 15
Done.
Moreover, we could make the SetColumnTypes to use a params as well:
This would be the desired generated output:
static extern void gtk_list_store_set_column_types (IntPtr raw, int
n_columns, int[] types);
public void SetColumnTypes(params int[] types)
{
gtk_list_store_set_column_types (Handle, types.Length, types);
}
Here is what I have for Gtk.metadata:
<rule>
<class name="GtkListStore">
<method>SetColumnTypes</method>
</class>
<data>
<attribute target="param">
<filter level="name">types</filter>
<name>pass_as</name>
<value>length_param</value>
</data>
</rule>
I have no idea how to test it. Is the above okay?
-----Original Message-----
From: mono-list-admin@ximian.com [mailto:mono-list-admin@ximian.com]On
Behalf Of Kristian Rietveld
Sent: Thursday, November 21, 2002 1:19 PM
To: Daniel Morgan
Cc: Mike Kestner; Mono-List
Subject: RE: [Mono-list] GTK# Patch for TreeStore, ListStore, and
TextIter
On Thu, 2002-11-21 at 04:12, Daniel Morgan wrote:
> SetColumnTypes should be an array like the GTK+ 2.0 API says:
Oh blah I see now. Dunno why I was comparing this function with the
constructors .... I guess I was already sleeping...
apologies,
Kris