C#

C# implicit operator

public class StringSafe
{
	/// < summary>
	/// Empty value
	/// < /summary>
	public const string Empty = "";

	/// < summary>
	/// String to StringSafe
	/// < /summary>
	/// < param name="data">object< /param>
	/// < returns>< /returns>
	public static implicit operator StringSafe(String data)
	{
		if (data == null)
			return Empty;

		return new StringSafe(data);
	}

	/// < summary>
	/// StringSafe to String
	/// < /summary>
	/// < param name="data">object< /param>
	/// < returns>< /returns>
	public static implicit operator String(StringSafe data)
	{
		if (data == null)
			return Empty;

		return data.value;
	}

	private String value = Empty;
	/// < summary>
	/// Value
	/// < /summary>
	public String Value
	{
		get
		{
			if (this.value == null)
			return Empty;

			return this.value;
		}
		set
		{
			if (value == null)
			this.value = Empty;
			else
			this.value = value;
		}
	}

	/// < summary>
	/// Create new instance of StringSafe
	/// < /summary>
	/// < param name="value">< /param>
	public StringSafe(String value = Empty)
	{
		this.value = value;
	}
}

Sample

public class Program
{
	StringSafe sf = "SAJJAD";
	MessageBox.Show(sf);
}

Anonymous Struct

var Freinds = new[]
{
	new { Name = "Ali", Age = 23 , Married = false },
	new { Name = "Reza", Age = 43  , Married = true },
	new { Name = "Ehsan", Age = 36 , Married = true },
	new { Name = "Mahdi", Age = 34 , Married = false }
};

String Output = String.Empty;

foreach (var v in Freinds.Where(a => a.Married))
	Output += "Name: " + v.Name + ", Age:" + v.Age + ";";

if (Output.Length > 0)
	MessageBox.Show(Output.Substring(0, Output.Length - 1));