Path: csiph.com!news.mixmin.net!aioe.org!.POSTED!not-for-mail From: "Dr.UgoGagliardelli" Newsgroups: it.comp.java Subject: =?UTF-8?Q?Re:_c'=c3=a8_anche_in_java_una_simile_sintassi=3f?= Date: Wed, 14 Oct 2015 11:49:35 +0200 Organization: Aioe.org NNTP Server Lines: 73 Message-ID: References: NNTP-Posting-Host: bD61OKoFF7ZO0t1S5Exurg.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com it.comp.java:8615 Il 12.10.2015 23.12, Vittorio ha scritto: > E' codice C# . > > Serve per impostare le due proprietà username\password ; Notare che > Credentials è una interfaccia implementata dalla classe > NetworkCredential, ma tale interfaccia non possiede le due proprietà > username\password ( che sono possedute invece dalla classe > NetworkCredential) ,per cui per impostarle si usa il costrutto con le > due graffe. > > > SmtpClient sc = new SmtpClient("hostpc",678); > > sc.Credentials = new System.Net.NetworkCredential() > { > UserName = "ffff", > Password = "fhy" > }; > > > Ciao La sintassi esiste, ma per inizializzare un array, ad esempio: String[] strings = new String[]{"ffff", "fhy"}; o creare una classe inner sia da un'interface, implementandone i metodi e dichiarando i campi, cosi': Credentials c = new Credentials() { String UserName = "ffff", Password = "fhy"; public String getUserName () { return UserName ; } public String getPassword() { return Password ; } }; oppure cosi': final String UserName = "ffff", Password = "fhy"; Credentials c = new Credentials() { public String getUserName () { return UserName ; } public String getPassword() { return Password ; } }; La stessa cosa la puoi fare con una class, ma non potrai sostituirne i campi, i campi che dichiarerai, anche con lo stesso nome avranno vita indipendente, ad esempio: Credentials c = new NetworkCredential() { String UserName = "ffff", Password = "fhy"; public String getPassword() { return Password ; } } il metodo getPassword() ritornera' il nuovo campo Password dichiarato, ma il campo UserName sara' ignorato. Inoltre, ogni accesso al campo Password nei metodi della superclasse, non tramite il metodo sostituito getPassword(), continueranno ad utilizzare la proprieta' originale. In definitiva la sintassi: Credentials c = new NetworkCredential() { UserName = "ffff", Password = "fhy"; } e' errata. Ovviamente potrai accedere direttamente ai campi sempre che siano accessibili: Credentials c = new NetworkCredential(); ((NetworkCredential)c).UserName = "ffff"; ((NetworkCredential)c).Password = "fhy";