CSharp:Scorciatoie programmazione
From Aino Wiki
Contents
Istanziazioni
Assegnazione di oggetto al volo
nauticalInfo.Position = new GeoPoint { Latitude = geoPosition.Lat.Value, Longitude = geoPosition.Long.Value, LastUpdateUTC = currGPSPosition.LastUpdateUTC.Value };
Dove
nauticalInfo.Position
è di tipo 'GeoPoint' come la seguente classe:public class GeoPoint{ [XmlElement("Latitude")] public double Latitude { get; set; }
[XmlElement("Longitude")] public double Longitude { get; set; }
[XmlAttribute("LastUpdateUTC")] public DateTime LastUpdateUTC { get; set; }}
Altro esempio:
Product[] products = new Product[] { new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M } };
Dichiarazione parametro object valorizzandolo al volo
Purtroppo qs es crea un vettore di oggetti non so come fare per dichiarare al volo uno solo!:object objAlVolo = new object[] { 1 });
Oppure per passare una variabile anonima di tipo object:
metodoConUnParametroStringa(new[] { "world" });
Assegnazione di una Lista
Ecco come popolare una List di stringhe al volo:List<string> list1 = new List<string>() { "carrot", "fox", "explorer" }; // Altro metodo List<string> list5 = new List<string>(); list5.Add("carrot"); list5.Add("fox"); list5.Add("explorer");
Configurazione
Usare Property per ottenere info dal file di configurazione
Occorre aggiungere:
- la reference a System.Configuration;
- la using: using System.Configuration;
using System.Configuration;
Per le stringhe:
public string DirectoryTemplateFiles { get { string directoryTemplateFiles = AppDomain.CurrentDomain.BaseDirectory; //Default if (ConfigurationManager.AppSettings["WaitIntervallMilliseconds"] != null) { string tmp = ConfigurationManager.AppSettings["WaitIntervallMilliseconds"].ToString(); if (!string.IsNullOrEmpty(tmp)) { directoryTemplateFiles = tmp; } } return directoryTemplateFiles; } }
Per i numeri:
public int WaitIntervallMilliseconds { get { int waitIntervall = 0; int value = 0; if (!int.TryParse(ConfigurationManager.AppSettings["WaitIntervallMilliseconds"], out value)) { waitIntervall = 1200; } return waitIntervall; } }
File di configurazione app.config o web.config così fatto:
<?xml version="1.0" encoding="utf-8"?> <configuration> <appSettings> <add key="ServiceName" value="" /> <add key="SMTPSettingMailFrom" value="RMSMailAlerter@"/> <add key="SMTPSettingHost" value="mail"/> <add key="SMTPSettingPort" value="25"/> <!-- ********************************************************************** --> <add key="HistoryRangeMinutes" value="240" /> <!-- In millisecondi --> <add key="WaitIntervallMilliseconds" value="12000" /> <add key="DirectoryTemplateFiles" value="" /> </appSettings> <connectionStrings> <add name="Route" providerName="System.Data.SqlClient" connectionString="Data Source=go;Initial Catalog=Test;User Id=Fleet;Password=xxx;Integrated Security=False" /> </connectionStrings> </configuration>
Iterazioni
ForEach compatto
Usando l'operatore =>:
lstRadarGz[indexRadarArray].ForEach((item) => { selectedRadarGz.Add(item); });