Introdução Perguntas e respostas da entrevista em C # OOP
C # é uma linguagem de programação orientada a objetos, funcional, genérica e orientada a componentes. Ele é usado para criar uma variedade de aplicativos, é especificamente forte na criação de aplicativos e jogos da área de trabalho do Windows. O desenvolvimento da Web também pode ser feito com eficiência em C # e se tornou cada vez mais popular para desenvolvimentos móveis. Portanto, é uma excelente escolha para qualquer programador que deseje desenvolver desenvolvimento para web e jogos. É uma linguagem de tipo estaticamente, portanto, o código-fonte escrito é cuidadosamente verificado antes de se transformar em um aplicativo. É uma linguagem complexa para aprender e dominá-la pode levar uma quantidade substancial de tempo. Existem várias ferramentas de plataforma cruzada disponíveis que permitem aplicativos escritos em C # que podem ser usados em dispositivos móveis e computadores.
Se você está procurando um emprego relacionado ao C # OOP, precisa se preparar para as Perguntas da entrevista do C # OOP 2019. Embora cada entrevista seja diferente e o escopo de um trabalho também seja diferente, podemos ajudá-lo com as principais perguntas da entrevista em C # OOP com respostas, que o ajudarão a dar o salto e obter sucesso em sua entrevista.
Abaixo, estão as principais perguntas da entrevista C # OOP de 2019 que são feitas com frequência em uma entrevista. Essas perguntas principais são divididas em duas partes:
Parte 1 - Perguntas da entrevista em C # OOP (Básica)
Esta primeira parte aborda perguntas e respostas básicas da entrevista em C # OOP
1. Qual a diferença entre Interface e Classe Abstrata?
Responda:
Alguma diferença está listada abaixo:
- Uma classe abstrata pode ter métodos não abstratos (métodos concretos), enquanto no caso da interface todos os métodos devem ser abstratos.
- Uma classe abstrata pode declarar ou usar qualquer variável enquanto uma interface não estiver permitida.
- Em uma classe abstrata, todos os membros ou funções de dados são privados por padrão, enquanto na interface todos são públicos, não podemos alterá-los manualmente.
- Uma classe abstrata usa construtor enquanto em uma interface não temos nenhum tipo de construtor.
- Uma classe pode implementar qualquer número de interfaces, mas uma subclasse pode usar no máximo apenas uma classe abstrata.
2. O que são delegados e seus usos?
Responda:
Um objeto delegado é uma variável do tipo de referência que usa para reter a referência a um método. A referência pode ser alterada em tempo de execução, mantida por um objeto de um delegado. Um objeto delegado pode conter muitas funções de referência, também conhecida como Lista de Invocação, que se refere a funções em uma sequência FIFO. Podemos novas funções ref nesta lista em tempo de execução por um operador + = e podemos remover por - = operador.
Os delegados são especialmente usados para implementar eventos e os métodos de retorno de chamada. Todos os delegados são derivados implicitamente do sistema. Delegar classe.
Vamos para as próximas perguntas da entrevista em C # OOP
3. Qual é a diferença entre a ligação tardia e a ligação precoce?
Responda:
No polimorfismo em tempo de compilação ou ligação inicial, usaremos vários métodos com o mesmo nome, mas um tipo diferente de parâmetro ou talvez o número ou parâmetro, por isso, podemos executar tarefas diferentes com o mesmo nome de método na mesma classe, o que também é conhecido como Sobrecarga de método.
public class TestData
(
public int Add(int a, int b, int c)
(
return a + b + c;
)
public int Add(int a, int b)
(
return a + b;
)
)
class Program
(
static void Main(string() args)
(
TestData dataClass = new TestData();
int add2 = dataClass.Add(45, 34, 67);
int add1 = dataClass.Add(23, 34);
)
)
O polimorfismo dinâmico / de tempo de execução também é conhecido como ligação tardia. Aqui, o nome do método e a assinatura do método (número de parâmetros e tipo de parâmetro devem ser os mesmos e podem ter uma implementação diferente). A substituição de método é um exemplo de polimorfismo dinâmico.
public class Drawing
(
public virtual double Area()
(
return 0;
)
)
public class Square : Drawing
(
public double Length ( get; set; )
public Square()
(
Length = 6;
)
public override double Area()
(
return Math.Pow(Length, 2);
)
)
public class Rectangle : Drawing
(
public double Height ( get; set; )
public double Width ( get; set; )
public Rectangle()
(
Height = 5.3;
Width = 3.4;
)
public override double Area()
(
return Height * Width;
)
)
class Program
(
static void Main(string() args)
(
Drawing square = new Square();
Console.WriteLine("Area :" + square.Area());
Drawing rectangle = new Rectangle();
Console.WriteLine("Area :" + rectangle.Area());
)
)
4. O que aconteceria se as interfaces herdadas tivessem nomes de métodos conflitantes?
Responda:
Essas são as perguntas comuns da entrevista do C # OOP feitas em uma entrevista. se tivermos métodos conflitantes em uma mesma classe, não poderemos implementar seus corpos independentemente na mesma classe por causa do mesmo nome e da mesma assinatura; portanto, devemos usar o nome da interface antes do nome do método para remover essa confusão de método.
interface testInterface1 (
void Show();
)
interface testInterface2 (
void Show();
)
class Abc: testInterface1,
testInterface2 (
void testInterface1.Show() (
Console.WriteLine("For testInterface1 !!");
)
void testInterface2.Show() (
Console.WriteLine("For testInterface2 !!");
)
)
5. Quais são as diferentes maneiras pelas quais um método pode ser sobrecarregado?
Responda:
Sobrecarga de método é outro nome para o polimorfismo em tempo de compilação, onde podemos criar um método com o mesmo nome, mas com uma assinatura diferente. Isso é feito em tempo de compilação e podemos fazer isso de várias maneiras, mas o nome do método permaneceria o mesmo.
Vários parâmetros podem ser diferentes.
O tipo de parâmetro pode ser diferente.
A ordem do parâmetro pode ser diferente.
Exemplo -
static int volume ( int x )(
return (x * x * x);
)
static double volume (float f, int i)(
return 3.14 * f * f * I;
)
static long volume (long l, int b, int n)(
return l * b * h;
)
Parte 2 - Perguntas da entrevista em C # OOP (avançado)
Esta primeira parte aborda perguntas e respostas avançadas da entrevista em C # OOP
6. O que é um modificador de acessibilidade e quantos existem em C #?
Responda:
Modificadores de acesso são palavras-chave usadas para especificar a acessibilidade declarada de um membro ou tipo. No C #, existem 5 vários tipos de modificadores de acesso.
Público - Não há restrições para acessar membros públicos.
Privado - acesso limitado dentro de uma definição de classe, se nenhum for especificado, esse é o padrão.
Protegido - o acesso é limitado à definição da classe e a qualquer classe que herda da classe.
Interno - o acesso é limitado exclusivamente às classes definidas pelo projeto atual
O membro interno protegido pode ser acessado em qualquer lugar do mesmo assembly e também acessível por herdar essa classe; ele pode ser acessível fora do assembly apenas na classe derivada.
7. O que é um método virtual em C #?
Responda:
Um método virtual é um método que pode ser redefinido em classes derivadas. Um método virtual tem uma implementação em uma classe base, bem como derivada da classe. É usado quando a funcionalidade básica de um método é a mesma, mas às vezes é necessária mais funcionalidade na classe derivada. Um método virtual é criado na classe base que pode ser substituído na classe derivada. Criamos um método virtual na classe base usando a palavra-chave virtual e esse método é substituído na classe derivada usando a palavra-chave override.
Quando um método virtual é chamado, o tipo de tempo de execução do objeto é verificado para um membro substituinte. O membro substituinte na classe mais derivada é chamado, que pode ser o membro original se nenhuma classe derivada tiver substituído o membro. Por padrão, os métodos não são virtuais. Não podemos substituir um método não virtual.
Vamos para as próximas perguntas da entrevista em C # OOP
8. Como evitar NULL em C #?
Responda:
Nulo não é um objeto. Podemos ter uma classe, mas uma variável com um valor NULL significa que não está apontando para nenhum objeto. Podemos encontrar um pedaço de código que contém muitas instruções condicionais que verificariam se o valor de uma variável é NULL. Vamos verificar um método estático:
sequência estática pública DisplayUpperString (string s) (
string upper = string.Empty;
If( s == null ) (
upper = null;
)
else (
upper = s.ToUpper();
)
return upper;
)
Esse código está correto e converte para maiúsculas uma string especificada.
Mas, da perspectiva do OO, considere construir um objeto que não representa nada, em vez de avaliá-lo como NULL.
public String estática DisplayUpperString (PossibleString s) (
string upper = s.ToPossibleUpper ();
retorno superior;
)
Agora, a função é menos confusa, mais legível e não usa mais a verificação de um valor NULL.
9. Qual é o método de extensão em C # e como usá-los?
Responda:
Estas são as perguntas mais frequentes sobre entrevistas em C # OOP feitas em uma entrevista. Um método de extensão é um tipo especial de método estático, mas eles são chamados como se fossem métodos de instância no tipo estendido. Este método permite adicionar métodos a tipos existentes sem criar um novo tipo derivado, recompilar ou modificar o tipo original. Os métodos de extensão só estão no escopo quando você importa explicitamente o espaço para nome no seu código-fonte com uma diretiva using.
10. A palavra-chave "this" pode ser usada dentro de um método estático?
Responda:
Como a palavra-chave “this” retorna uma referência à instância atual de uma classe, não podemos usá-la dentro de um método estático. E membros estáticos existem sem nenhuma instância da classe e chamam com o nome da classe, não por instância. Portanto, podemos dizer que a palavra-chave “this” é um tipo especial de variável de referência que é definida implicitamente dentro de cada construtor e método não estático como um primeiro parâmetro da classe de tipo na qual está definida.
Artigo recomendado
Este foi um guia para a lista de perguntas e respostas da entrevista em C # OOP, para que o candidato possa reprimir essas perguntas da entrevista em C # OOP facilmente. Aqui neste post, estudamos as principais perguntas da entrevista em C # OOP, que geralmente são feitas em entrevistas. Você também pode consultar os seguintes artigos para saber mais -
- Perguntas da entrevista com o administrador do Hadoop
- 12 perguntas surpreendentes da entrevista da faísca
- 10 perguntas importantes da entrevista Ab initio
- As 25 perguntas mais importantes sobre entrevistas em ciência da computação
- Quais são os benefícios de C # e Js