Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему не работает?

Матвей Тельпук Ученик (74), открыт 18 часов назад
Почему имя метода не существует в текущем контесте?
3 ответа
гг вп Мастер (1949) 18 часов назад
Ты реально такой тупой? ?
Матвей ТельпукУченик (74) 18 часов назад
Так объясни что не так лучше
Матвей ТельпукУченик (74) 18 часов назад
Вернее что не так я понял , но как исправить
бабуин гибонович Оракул (51861) 18 часов назад
Давайте разберёмся, почему возникает ошибка "Имя 'FractionMultiplication' не существует в текущем контексте".

Ошибка возникает из-за того, что вы пытаетесь вызвать метод `FractionMultiplication` в статическом контексте `Main`, но метод не является статическим. Давайте исправим это:

### Вариант 1: Сделать метод статическим
Если вы хотите сделать метод статическим, измените его определение в классе `Fraction`:

```csharp
public static void FractionMultiplication(Fraction a, Fraction b)
{
int numerator = a.Numerator * b.Numerator;
int denominator = a.Denominator * b.Denominator;
Simplify(numerator, denominator);
}
```

И вызовите его в классе `Program` следующим образом:

```csharp
static void Main(string[] args)
{
Fraction fraction1 = new Fraction(2, 3);
Fraction fraction2 = new Fraction(4, 5);
Fraction.FractionMultiplication(fraction1, fraction2);
}
```

### Вариант 2: Создать экземпляр класса
Если вы хотите оставить метод как нестатический, создайте экземпляр класса `Fraction`:

```csharp
static void Main(string[] args)
{
Fraction fraction1 = new Fraction(2, 3);
Fraction fraction2 = new Fraction(4, 5);
Fraction fractionInstance = new Fraction();
fractionInstance.FractionMultiplication(fraction1, fraction2);
}
```

Таким образом, метод будет доступен для вызова. Попробуйте один из этих вариантов, чтобы исправить ошибку. Если у вас возникнут дополнительные вопросы, пожалуйста, сообщите.
Николай Веселуха Высший разум (370749) 17 часов назад
 using System; 
namespace Answer {
internal static class Solution {
static void Main() {
var frac1 = new Fraction(3, 5);
var frac2 = new Fraction(15, 16);
var frac3 = frac1.Multiplication(frac2);
Console.WriteLine(frac3);
Console.ReadKey();
}
}
internal class Fraction(long numerator, long denominator) {
public long Numerator { get; set; } = numerator;
public long Denominator { get; set; } = denominator;
public void ReduceAFraction() {
if (Denominator != 0) {
var gcd = Gcd();
Denominator /= gcd;
Numerator /= gcd;
}
}
private long Gcd() {
long num = Numerator;
long den = Denominator;
long remainder;
while (den != 0) {
remainder = num % den;
num = den;
den = remainder;
}
return num;
}
public override string ToString() {
ReduceAFraction();
return $"{Numerator}/{Denominator}";
}
public Fraction Multiplication(Fraction other) {
return new Fraction(Numerator * other.Numerator, Denominator * other.Denominator);
}
}
}
 using System; 
namespace Answer {
internal static class Solution {
static void Main() {
var frac1 = new Fraction(3, 5);
var frac2 = new Fraction(15, 16);
var frac3 = frac1 * frac2;
Console.WriteLine(frac3);
Console.ReadKey();
}
}
internal class Fraction {
public long Numerator { get; set; }
public long Denominator { get; set; }
public Fraction(long numerator, long denominator) {
Numerator = numerator;
Denominator = denominator;
ReduceAFraction();
}
public static Fraction operator*(Fraction a, Fraction b) {
var frac = new Fraction(a.Numerator * b.Numerator, a.Denominator * b.Denominator);
frac.ReduceAFraction();
return frac;
}
private void ReduceAFraction() {
if (Denominator != 0) {
var gcd = Gcd();
Denominator /= gcd;
Numerator /= gcd;
}
}
private long Gcd() {
var num = Numerator;
var den = Denominator;
long remainder;
while (den != 0) {
remainder = num % den;
num = den;
den = remainder;
}
return num;
}
public override string ToString() {
return $"{Numerator}/{Denominator}";
}
}
}
Похожие вопросы