Advertisement
fcamuso

Untitled

Sep 8th, 2020
561
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.38 KB | None | 0 0
  1. using System;
  2.  
  3. namespace OOP_7_pswGenerator
  4. {
  5.   static class cs
  6.   {
  7.     //int n = 0; NO! una classe statica può contenere solo membri statici
  8.   }
  9.  
  10.   class GeneraPsw
  11.   {
  12.  
  13.     static GeneraPsw()
  14.     {
  15.       Console.WriteLine("Costruttore statico chiamato");
  16.       //LunghezzaMediaPsw = 9; NO non esiste una istanza cui appartiene la variabile
  17.  
  18.       //string s = GeneraPsw();  NO non esiste una istanza su cui invocare il metodo
  19.     }
  20.  
  21.     private static readonly Random r = new Random();
  22.     private static long totale { get; set; } = 0;
  23.     private static long cont{ get; set; } = 0;
  24.  
  25.    
  26.  
  27.     private int lunghezzaMinima = 3;
  28.     public int LunghezzaMinima
  29.     {
  30.       get => lunghezzaMinima;
  31.       set
  32.       {
  33.         if (value < 3)
  34.           throw new ArgumentOutOfRangeException("Almeno 3 caratteri");
  35.         else
  36.           lunghezzaMinima = value;
  37.       }
  38.     }
  39.  
  40.     private string caratteriValidi = "abcdefghiABCDEFGHI1234567890!-_$";
  41.     public string CaratteriValidi
  42.     {
  43.       get => caratteriValidi;
  44.       set
  45.       {
  46.         if (value.Length<2)
  47.           throw new ArgumentOutOfRangeException("Almeno 2 carattere tra cui scegliere");
  48.         else
  49.           caratteriValidi = value;
  50.       }
  51.     }
  52.     static public double LunghezzaMediaPsw() => cont == 0 ? 0 : (double)totale / cont;
  53.  
  54.     public string NuovaPsw(int lunghezza = 0)
  55.     {
  56.       if (lunghezza == 0) lunghezza = lunghezzaMinima;
  57.  
  58.       if (lunghezza<LunghezzaMinima) throw new ArgumentOutOfRangeException($"Almeno {lunghezzaMinima} caratteri");
  59.       string risultato = "";
  60.  
  61.       for (int i = 0; i < lunghezza; i++)
  62.         risultato += caratteriValidi[r.Next(0, caratteriValidi.Length)];
  63.  
  64.       cont++;
  65.       totale += lunghezza;
  66.  
  67.       return risultato;
  68.     }
  69.   }
  70.  
  71.   class Program
  72.   {
  73.     static void Main(string[] args)
  74.     {
  75.  
  76.       GeneraPsw genera = new GeneraPsw();
  77.       Random r = new Random();
  78.  
  79.       for (int i=0; i<5; i++)
  80.         Console.WriteLine(genera.NuovaPsw(3+r.Next(1,11)));
  81.  
  82.       //altre istruzioni ...
  83.       f();
  84.       //altre istruzioni ...
  85.  
  86.  
  87.     }
  88.  
  89.     static void f()
  90.     {
  91.       //altre istruzioni...
  92.  
  93.       //GeneraPsw g = new GeneraPsw();
  94.       Console.WriteLine($"Lunghezza media: {GeneraPsw.LunghezzaMediaPsw()}");
  95.       if (GeneraPsw.LunghezzaMediaPsw()<8 )
  96.       {
  97.         //....  
  98.        
  99.       }
  100.      
  101.     }
  102.   }
  103. }
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement