//m = new Message();
m = MessageFactory.GetMessage();
class KvadrUr
{
public double a, b, c, D, x1, x2;
public void CalcD()
{
D = b*b - 4*a*c;
}
public void Calc()
{
double d = Math.Sqrt(D);
x1 = (-b + d)/(2*a);
x2 = (-b - d)/(2*a);
}
}
KvadrUr ur = new KvadrUr();
ur.a = 1;
ur.b = 2;
ur.c = -3;
ur.CalcD();
ur.Calc();
Console.WriteLine(ur.x1 + " " + ur.x2); // правильный ответ
ur.c = -4;
Console.WriteLine(ur.x1 + " " + ur.x2); // неправильный ответ - теперь дискриминант неверный!
MyService x = GetSevice<MyService>();
или Person x = GetSevice<Person>();
или IWeapon x = GetSevice<IWeapon>();
.throw new NotImplementedException();
- возникнет исключение, указывающее, что тело не определено. Так делается, если нужно показать, что этот код вызывать не нужно, либо если тело будет написано позже, а сейчас при вызове будет исключение. List<int>
вместо массива:public List<int> checkAddDel;
checkAddDel = new List<int>(Word.Length); // предварительно указывать размер не обязательно,
// но если известно заранее, то лучше указать
Console.WriteLine(checkAddDel.Count); // 0
for (var i = 0; i < Word.Length; i++)
{
checkAddDel.Add((i + 1) * 10);
}
Console.WriteLine(checkAddDel.Count); // размер теперь стал равным Word.Length
// используем список
DoWork(checkAddDel);
checkAddDel.Clear(); // теперь стал пустым
Console.WriteLine(checkAddDel.Count); // 0
var isLeftPressed = Input.GetButton("LeftArrow");
var isUpPressed = Input.GetButton("UpArrow");
var isRightPressed = Input.GetButton("RightArrow");
var isDownPressed = Input.GetButton("DownArrow");
if (isUpPressed && isDownPressed && Time.time > timeToFire)
{
timeToFire = Time.time + 1 / fireRate;
Instantiate(fireSphere, firePoint.position, firePoint.rotation);
}
double a = 10.123, b = 20.234, c = 30.345;
Console.WriteLine(Math.Round(a, 2) + " " + Math.Round(b, 2) + " " + Math.Round(c, 2));
Console.WriteLine(string.Join(" ", new []{a, b, c}.Select(x => x.ToString("F2"))));
public enum DamageType { Melee, Range, Magic }
public class Monster
{
public double Health { get; private set; }
public double MeleeDamage { get; private set; }
public double RangeDamage { get; private set; }
public double MagicDamage { get; private set; }
public DamageType FavoriteDamageType { get; private set; }
public Monster(double health, double meleeDamage, double rangeDamage, double magicDamage, DamageType favoriteDamageType)
{
Health = health;
MeleeDamage = meleeDamage;
RangeDamage = rangeDamage;
MagicDamage = magicDamage;
FavoriteDamageType = favoriteDamageType;
}
public void AttackTo(Monster monster, DamageType damageType)
{
switch (damageType) // используется switch
{
case MonsterType.Melee: monster.Health -= MeleeDamage; break;
case MonsterType.Range: monster.Health -= RangeDamage; break;
case MonsterType.Magic: monster.Health -= MagicDamage; break;
}
}
public void AttackTo(Monster monster)
{
AttackTo(monster, FavoriteDamageType);
}
}
public class Monster
{
public double Health { get; set; }
public double MeleeDamage { get; private set; }
public double RangeDamage { get; private set; }
public double MagicDamage { get; private set; }
public IDamageStrategy FavoriteDamageStrategy { get; private set; }
public Monster(double health, double meleeDamage, double rangeDamage, double magicDamage, IDamageStrategy favoriteDamageStrategy)
{
Health = health;
MeleeDamage = meleeDamage;
RangeDamage = rangeDamage;
MagicDamage = magicDamage;
FavoriteDamageStrategy = favoriteDamageStrategy;
}
public void AttackTo(Monster monster, IDamageStrategy damageStrategy)
{
damageStrategy.Attack(this, monster); // не используется switch
}
public void AttackTo(Monster monster)
{
AttackTo(monster, FavoriteDamageStrategy);
}
}
public interface IDamageStrategy
{
void Attack(Monster attacker, Monster defender);
}
public class MeleeDamageStrategy : IDamageStrategy
{
public void Attack(Monster attacker, Monster defender)
{
defender.Health -= attacker.MeleeDamage;
}
}
public class RangeDamageStrategy : IDamageStrategy
{
public void Attack(Monster attacker, Monster defender)
{
defender.Health -= attacker.RangeDamage;
}
}
public class MagicDamageStrategy : IDamageStrategy
{
public void Attack(Monster attacker, Monster defender)
{
defender.Health -= attacker.MagicDamage;
}
}