examples/reference/csharp/eina/src/eina_value.cs

85 lines
2.2 KiB
C#

/*
* Eina Value examples.
*
* These examples demonstrate how to work with Eina_value data and methods.
* Eina_Value is a way to represent and pass data of varying types and to
* convert efficiently between them.
* Eina_Value can even define structs for managing more complex requirements.
*/
using System;
public class Example
{
static void ValueInt()
{
int i;
// Setting up an integer value type
var int_val = new Eina.Value(Eina.ValueType.Int32);
int_val.Set(123);
int_val.Get(out i);
Console.WriteLine("int_val value is {0}", i);
// It can easily be converted to a string
string str = int_val.ToString();
Console.WriteLine("int_val to string is \"{0}\"", str);
}
static void ValueString()
{
string str;
// Setting up an string value type
var str_val = new Eina.Value(Eina.ValueType.String);
str_val.Set("My string");
str_val.Get(out str);
Console.WriteLine("str_val value is \"{0}\"", str);
// To string should have the same content
string newstr = str_val.ToString();
Console.WriteLine("str_val to string is \"{0}\"", newstr);
}
static void ValueConvert()
{
// Set up string and int types to convert between
var str_val = new Eina.Value(Eina.ValueType.String);
var int_val = new Eina.Value(Eina.ValueType.Int32);
// Convert from int to string:
int i1;
string str1;
int_val.Set(123);
int_val.Get(out i1);
int_val.ConvertTo(str_val);
str_val.Get(out str1);
Console.WriteLine("int_val was {0}, converted to string is \"{1}\"", i1, str1);
// And the other way around!
int i2;
string str2;
str_val.Set("33");
str_val.Get(out str2);
str_val.ConvertTo(int_val);
int_val.Get(out i2);
Console.WriteLine("str_val was \"{0}\", converted to int is {1}", str2, i2);
}
public static void Main()
{
Efl.All.Init();
ValueInt();
Console.WriteLine("");
ValueString();
Console.WriteLine("");
ValueConvert();
Console.WriteLine("");
Efl.All.Shutdown();
}
}